fopen et "r" no such file or directory
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:
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;
} |