2010-12-01 3 views
3

Y at-il un analogue du système de PHP dans C? Renvoie system indique que system renvoie l'état de la commande, mais j'ai besoin de la sortie (comme en PHP).Comment capturer la sortie du processus en C?

Bien sûr, je peux utiliser des tuyaux pour cela, mais existe-t-il un moyen standard?

+0

Je pense que vous voulez popen ('commande va ici'). Lisez votre page de manuel sur popen –

Répondre

3

Vous pouvez utiliser popen et la fonction connexe comme:

// command to be run. 
char *cmd = "date"; 

// open pipe stream. 
FILE *fp = popen(cmd,"r"); 
int ch; 

// error checking. 
if(!fp) { 
     fprintf(stderr,"Error popen with %s\n",cmd); 
     exit(1); 
} 

// read from the process and print. 
while((ch = fgetc(fp)) != EOF) { 
     putchar(ch); 
} 

// close the stream. 
pclose(fp); 

Ideone link

2

Si vous avez besoin de la sortie de la commande, vous utiliseriez popen() sur Unix (avec « r » pour indiquer que vous voulez lire depuis la commande).

FILE *fp = popen("some -convoluted command", "r"); 
...check for validity... 
...read data from command... 
pclose(fp); 
Questions connexes