Problem mit fopen() in Vista
-
Ich schreibe zurzeit ein kleines Verschlüsselungsprogramm für .txt - Dateien, doch ich habe das Problem, dass ich die Ursprungsdatei(=startdatei) nicht lesen lässt. Es wird immer als Wert NULL zurückgegeben, egal, wie ich es mache. Muss man mit Vista es irgendwie anders machen (mit xp hat es immer funktioniert).
\E: Ich benutze Code::Blocks mit dem GNU GCC Compiler
\E²: Die txt-Datein sind auch im selben verzeichniss
void dateipruefung(char *name) { int laenge; char *zeiger; zeiger = strstr(name, ".txt"); if(zeiger==NULL) { laenge = strlen(name); if(laenge>16) { *(name+16) = '.'; *(name+17) = 't'; *(name+18) = 'x'; *(name+19) = 't'; *(name+20) = '\0'; } else { *(name+laenge) = '.'; *(name+laenge+1) = 't'; *(name+laenge+2) = 'x'; *(name+laenge+3) = 't'; *(name+laenge+4) = '\0'; } } } [...] char verfahren[verf_laenge]; char pufferV[verf_laenge]; char *alphabetzeiger[verf_laenge-1]; char *dyn_speicherzeiger; char pruefung; char dateiname[21]; char puffer[21]; long dateigroesse; int i = 0; FILE *startdatei; FILE *zieldatei; [...] do { printf("Geben sie die Quell-textdatei ein, die verschluesselt\n"); printf("werden soll\n"); fgets(puffer, sizeof(puffer), stdin); sscanf(puffer, "%s\n", dateiname); dateipruefung(dateiname); startdatei = fopen(dateiname,"rb"); if(startdatei==NULL) { printf("\t|%s| nicht gefunden.\n\n", dateiname); } }while(startdatei==NULL); [...]
\E: Scheinbar lag es an Windows nach einer Defragmentierung hat es plötzlich funktioniert... xD