bonjour

devant ouvrir un fichier pour y ecrire en utilisant la norme posix pour la portabilite (contrainte du projet) le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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