begin process at 2012 05 30 10:52:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

à propos d'un ls * dans un fork


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

à propos d'un ls * dans un fork

jeudi 6 décembre 2007 à 18:45:46 | à propos d'un ls * dans un fork

Gotscha

Bonjour à tous,

J'ai un petit problème en C que je n'arrive pas à comprendre :
Voici la partie de mon code qui me pose problème :

if (fork() == 0){
    execlp("ls","ls","*.fra",NULL);
    perror("ls");
    exit(5);
  }
  wait(&status);
  if (status != 0){
    perror("fork");
    exit(4);
  }



J'aimerai savoir pourquoi, lorsque je lance mon script, il s'affiche sous unix :
ls: *.fra: Aucun fichier ou répertoire de ce type
fork: Success


2 choses :
 - pourquoi mon ls ne fonctionne pas avec mon paramètre *.fra
 - pourquoi mon perror("fork") affiche :Sucess
alors qu'il sait pertinament que le fork à échoué puisque le status est à -1

merci de votre aide,


vendredi 7 décembre 2007 à 12:31:33 | Re : à propos d'un ls * dans un fork

Pistol_Pete

Salut
Est ce que ton programme marche en mettant à la place de "*.fra" , "-l"  ?
Sinon comment tu peut savoir si ton fork à échoué, tu ne testes pas son retour:

pid=fork();
if (pid == 0)     //Processus fils
if (pid ==-1)     //Erreur du fork
else              //Processus père

Je ne pense pas que le fork echoue parce que dans ce cas la, le processus père est arreté à la ligne wait et il n'y a personne pour le débloquer...

Status sera le code de retour du processus fils, donc regarde les codes de retour du "ls"
si 1, je pense que ca signifie que le ls à été correctement effectué.
A+


Mon site internet : [ Lien ]

lundi 10 décembre 2007 à 19:04:50 | Re : à propos d'un ls * dans un fork

Gotscha

Re-bonjour,

Pour ceux que ça intéresseraient, j'ai résolu d'une autre manière mon problème de ls *.fra en C :


if(fork()==0){
    DIR* dp=opendir(".");
    struct dirent* dirp;
    if(dp == NULL){
      perror("forkrep");
    }else{
      while((dirp=readdir(dp)) !=NULL){
    if(strstr(dirp->d_name,".fra")){
      printf("%s \n",dirp->d_name);
    }
      }
      closedir(dp);
    }
  }
  wait(&status);
  if (status != 0){
    perror("x> aucun fichier .fra");
    exit(4);
  }


merci quand même pistol_pete...

pourquoi faire simple quand on peut faire compliqué


Cette discussion est classée dans : status, ls, fork, fra, perror


Répondre à ce message

Sujets en rapport avec ce message

Status Process d une application windows [ par Trinita16 ] est il possible de savoir le status d une application qui tourne en tache de fond sous windows ? je m explique, je voudrais savoir si mon application MciSendString Status [ par Xentor609 ] Salut,J'utilise la commande :char status[5];mciSendString("status cdaudio mode",(LPSTR)status,sizeof(status),NULL);pour connaitre l'etat du lecteur cd equivalent fork sous windows [ par boisnou ] bonjour a vous , voila j ai un petit probleme, je suis en train de faire un jeux en c++ avec dev c++ c le jeux pong( deux joueur qui s echange une bal Vérification fonction d'envoi RS232 [ par VolaiL ] J'ai à réaliser un programme permettant de communiquer avec une machine depuis un PC.voici ce que j'ai fait :void Envoyer(char *message){ DCB car_com; status bar et progress bar (win32) [ par Elendal ] J'ai créé une status Bar en deux parties.Dans la première partie, j'affiche du texte. Là pas de problème.Dans la deuxième par contre, je voudrais mett Passer un code Unix sous Windows (problème avec fork) [ par nepomuk ] Je cherche à passer ce code sous windows :pid_t pid;pid=fork(); switch (pid){ case '0' : Envoi_carte(Text); break; case default fork: communication entre pere et fils [ par nezdeboeuf62 ] Pour faire un chat, j'ai un programme qui contient une map (librairie STL, template).Bien sur cette map evolue regulierement.Le probleme c'est que apr Status bar probleme!!! [ par frdestroyers27 ] Salut a tous!mon probleme est le suivant:j'ai creer un status bar a 4 sectionj'ecrit quelque chose dans la deuxieme section et quand je reecrit quelqu fork+exec ? [ par garslouche ] Bonjour, je bosse sous Linux (g++) avec Qt (mais du C ou du C++ standard peut très bien faire l'affaire) et voudrais que mon programme lance un autre memoire partagee [ par sparetime ] bonjourj'ai un pb avec ce code #include #include #include #include #include #include #


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales