[SYS 2] = == , ? Oo

Voir le sujet précédent Voir le sujet suivant Aller en bas

[SYS 2] = == , ? Oo

Message  Nicky le Lun 06 Sep 2010, 10:01

Bonjour,

Alors voici un programme qui execute ls * ( oui je sais normalement c est un shell que fais ls * peu importe entrée au clavier).

A la base j'avais utiliser des méthode et j ai ensuite modifier mon code. Et par mégarde j'ai laisser: courant[i],dirp->d_name; au lieu de mettre un = a la place de la virgule...

mais miracle bah ca compile, ca tourne...

J'ai sans doute zappé l'explication au cours je sais pas... c est une ancienne notation qui nous viens d'une version antérieur du C ?

Enfin assez surpris du resultat.


Code:
#include <sys/stat.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>

int main(){
char *courant[512];
struct dirent *dirp;
DIR *dir;
int r,i;
   
dir=opendir(".");
i=1;
courant[0]="ls";
while((dirp=readdir(dir))!=NULL){

   if(!strcmp(dirp->d_name,".") && !strcmp(dirp->d_name,"..") ){
         
   courant[i],dirp->d_name;
   i++;   
   }
}
   if((r=fork())==0){
   
      execvp("ls",courant);
   }
wait(0);
exit(0);
}


Nicky

Nombre de messages : 300
Age : 29
Prénom : Pierre
Statut : Tout fini ! 2012
Localisation : Bruxelles / Chimay
Date d'inscription : 18/03/2008

Revenir en haut Aller en bas

Re: [SYS 2] = == , ? Oo

Message  mba le Lun 06 Sep 2010, 10:16

est-ce une question de système ou de C ??

essaye d'intialiser courant ou exécute ton programme dans un autre répertoire
pour moi ta variable courant a tout simplement une valeur aléatoire qui est bêtement celle qu'il faut à cause d'une exécution précédente (celle du courant = ?).


mba

Nombre de messages : 1493
Statut : prof
Localisation : Lessines
Date d'inscription : 07/10/2006

Revenir en haut Aller en bas

Re: [SYS 2] = == , ? Oo

Message  Nicky le Lun 06 Sep 2010, 10:28

j'avoue que le probleme etant survenu en travaillant system, je n'ai pas penser a placer cela dans la section C...
Le mystere est donc du domaine c et non system.


J'ai copier le programme dans un autre repertoire, et le resultat est correct également. ( sur un autre pc ca fonctionne aussi ( il y a pas de raison ) )...

J'ai fais le test avec i,i+1; et ca fonctionne egalement.
je comprend meme pas comment ce programme compil avec une , a la place de = ...


Nicky

Nombre de messages : 300
Age : 29
Prénom : Pierre
Statut : Tout fini ! 2012
Localisation : Bruxelles / Chimay
Date d'inscription : 18/03/2008

Revenir en haut Aller en bas

Re: [SYS 2] = == , ? Oo

Message  mcd le Lun 06 Sep 2010, 12:20

"," est l'opérateur de séquence.
Il évalue les 2 expressions dans l'ordre.
Quelle différence avec le ';' ?
Il a son intérêt (limité) là où on doit trouver une expression et pas une instruction -> le ";" n'est pas permis.

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: [SYS 2] = == , ? Oo

Message  Nicky le Mar 07 Sep 2010, 15:33

ok merci Smile


Nicky

Nombre de messages : 300
Age : 29
Prénom : Pierre
Statut : Tout fini ! 2012
Localisation : Bruxelles / Chimay
Date d'inscription : 18/03/2008

Revenir en haut Aller en bas

Re: [SYS 2] = == , ? Oo

Message  Contenu sponsorisé Aujourd'hui à 15:18


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum