write et bad file descriptor
bonjour
devant ouvrir un fichier pour y ecrire en utilisant la norme posix pour la portabilite (contrainte du projet) le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]) {
char* s = "un message";
printf("%s\n", argv[1]);
int fd = (int)fopen(argv[1], "r");
fprintf(stderr, "%s\n", strerror(errno));
printf("fd %d\n", fd);
int res = write(fd, s, 2);
printf("res %d\n", res);
fprintf(stderr, "%s\n", strerror(errno));
return 0;
} |
compile et me renvois, a l'execution (avec :mon_exe mon_fichier), le message suivant:
mon_fichier
fd 1...4
res -1
Bad file descriptor
Si qlq'un connait la raison de ce probleme par avance merci