Problem mit write() - Bad file descriptor
-
Hallo,
ich möchte gerne eine Datei erstellen und dann am Anfang was reinschreiben und nach xx Bytes wieder. Habe das folgendermaßen versucht aber ich bekomme bei write die o.g. Fehlermeldung
int main() { int fd; char puffer[30] = "TEST TEST TEST"; if((fd = open("new.txt",O_CREAT, S_IREAD|S_IWRITE)) == -1) { perror("Fehler bei open()"); return EXIT_FAILURE; } else { lseek(fd, 0L, SEEK_SET); if((write(fd, &puffer, sizeof(puffer))) == -1) { perror("Fehler bei write1");//<- die Fehlermeldung + Bad... kommt return EXIT_FAILURE; } } lseek(fd, 10000L, SEEK_CUR); if((write(fd, &puffer, sizeof(puffer))) == -1) { perror("Fehler bei write2"); return EXIT_FAILURE; } if((close(fd)) == -1) printf("Fehler beim Schliessen der Datei\n"); else printf("Datei wurde ordentlich geschlossen\n"); return EXIT_SUCCESS; }
Woran kann das liegen?
Danke und Gruß
-
Du öffnest die Datei weder zum Lesen, noch zum Schreiben.
-
oh. hatte die windows parameter in open getan und nicht O_RDWR. danke für den hinweis