IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

fopen et "r" no such file or directory


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 22
    Par défaut 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 : 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;
     
    }

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Le tilde (~) n'a aucune signification en dehors du shell. Mets le chemin en absolu et ça devrait aller.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/04/2006, 09h56
  2. Réponses: 3
    Dernier message: 16/01/2006, 18h24
  3. Réponses: 1
    Dernier message: 04/10/2005, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo