Bonjour je fais un petit code pour lire un fichier et le fopen avec "r" me retourne NULL, avec comme erreur que le fichier n'existe pas. Honnetement je deviens fou. Quelqu'un peut m'aidé svp ?

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdio.h>
#include <errno.h>
#include <string.h>
 
extern int errno;
 
#define USAGE 		"Mauvaise utilisation\n	%s nom_du_fichier\n"
#define LINE_MAX_SIZE	21
#define resultfile 	"~/result_tp3.txt"
 
int main (int argc, char * argv[])
{
	FILE * 	fd;
	char 	line[LINE_MAX_SIZE];
	size_t 	ret;
	int 	line_max_len = LINE_MAX_SIZE-1;
	int	cpt = 0;
	int 	i;
 
	if (argc != 2)
	{
		printf(USAGE,argv[0]);
		return 1;
	}
 
	//ouverture du fichier 
	fd = fopen ("/etc/issue", "r");
 
	if(fd == NULL)
	{
		printf("Impossible d'ouvrir le fichier '%s', %s\n", argv[1], strerror(errno));
		perror("");
		return 1;
	}
 
	//Compte du nombre de lignes
	for (;;)
	{
		bzero(line,LINE_MAX_SIZE);
 
		ret = fread(line,sizeof(char),line_max_len,fd);
		if(ret == 0)
		{
			if(feof(fd) != 0)
			{
				break;
			}else 
			{
				printf("Une erreur s'est produite\n");
				close(fd);
				return 1;
			}
		}
 
		//La lecture s'est bien passee
		//compte les \n dans la ligne
		for(i = 0; i<LINE_MAX_SIZE; i++)
		{
			if(line[i] == '\n') cpt++;
		}
	}
 
	fclose(fd);
 
	fd = fopen (resultfile,"w");
	if (fd == NULL)
	{
		printf("Impossible d'ouvrir le fichier '%s', %s\n", argv[1], strerror(errno));
		return -1;
	}
 
	fprintf(fd,"Le fichier %s contient %d lignes\n", argv[1], cpt);
 
	close(fd);
	return 0;
 
}