Appel systeme en programme C

[Résolu/Fermé]
Signaler
Messages postés
15
Date d'inscription
vendredi 4 novembre 2011
Statut
Membre
Dernière intervention
9 mai 2012
-
 info-nadia -
Bonjour,

j'ai un exercice qui demade de lire des fichiers passes en argument et ecrire leur contenu sur la sortie standard dans le meme ordre utilisant les appels systeme open() read() write() close().mais j'ai un problem lors de la compilation car plus l'affichage du contenu il m;affiche aussi des symboles bizzards SVP si vous pouvez me trouver l'erreur aue j'ai fait voici le code;
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define taille 20
int main (int argc,char *argv[]){
int fd;
int i=1;
char buf;

while (argv[i]!=NULL){
fd=open(argv[i],O_RDONLY);

if(read(fd,&buf,taille)>0) write (1,&buf,taille);
printf("\n");

close(fd);i++;

}
}
Merciiiiiiiiii d'avance.

2 réponses

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 307
while (argv[i]!=NULL)
{
   fd=open(argv[i],O_RDONLY);
   if(fd<1)
   {
        printf("erreur lecture %s\n",argv[i]);
        continue;
   }
   printf("===> \\ fichier \"%s\" :\n",argv[i]);
   while((nb=read(fd,&buf,taille))>0) 
         write (1,&buf,nb);
   printf("\n");

   close(fd);
    i++;
} 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

ca marcheee mille merciiiiiiiiiiiiiiiiiiiiiiiii c gentil
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 307
salut, essai ça :
int nb; 
if((nb=read(fd,&byf,taille)>0)write(1,&buf,nb);

car taille n'est pas forcément la taille de ce qui est lu, du coup tu risque d'afficher des choses qui sont des "détritus".
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
Messages postés
15
Date d'inscription
vendredi 4 novembre 2011
Statut
Membre
Dernière intervention
9 mai 2012

il m;affiche que le 1ere caractere de chaque fichier
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 307
il faut que tu fasses une boucle sur le read avec comme condition de sortie la fin du fichier.