This is a condensed version of a little program i've been building for fun. It's a file shredder, but after the first shred it stops working in DJGPP. After the second overwrite, the pattern in the file should be a 0x00 followed by a 0xFF, but it remains the same pattern as in the first shred: 0xFF followed by 0x00. I it works just as it should in Borland C++ builder or VC++, but not in DJGPP. Another problem is that some of the file opening modes don't work in DJGPP. Why can't I use ios::nocreate? Is there something wrong with file IO in DJGPP?
#include <iostream>
using namespace std;
fstream file;
static inline void openFile(char* argv){
file.open(argv,ios::binary|ios::in|ios::out);
if(file==NULL){
cerr<<"Error in opening file \""<<argv<<"\", try again.";
exit(1);
}
}
int main(int argc, char** argv){
//BEGIN MAIN
if(argc!=2){
cerr<<"Usage: wipe [file]";
exit(1);
}
//Write over one
openFile(argv[1]);
do{
file.put(0xFF);
file.put(0x00);
}while(file.peek()!=EOF);
file.close();
//Write over two
openFile(argv[1]);
do{
file.put(0x00);
file.put(0xFF);
}while(file.peek()!=EOF);
file.close();
}