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


Anmelden zum Antworten