[Pluto-devel] Redirezione dell'output in C

Germano Rizzo mano@pluto.linux.it
Wed, 24 Apr 2002 16:06:34 +0200


> lanci il comando con system("ls>file.c"), oppure con popen("ls") lo apri 
> come se fosse un file, ne leggi l'output e poi ne fai ciò che vuoi.
>     Mano :)
Scusa per la fretta di prima, mi spiego meglio: per lanciare un comando 
in una sottoshell puoi usare:

#include <stdlib.h>

...
char *comando = "ls > file.txt";
int res;
...
res = system(comando);
...

res è -1 se è stato impossibile avviare il comando, altrimenti è il 
codice di ritorno del comando. Se vuoi intercettare l'output, puoi 
trattare un comando come fosse un file con popen() e pclose():

#include <stdio.h>

...
char *comando = "ls";
FILE *fd;
...
fd = popen(comando, "r"); //NB:solo lettura o solo scrittura
...
fread(buf, n, m, fd); //ad esempio
...
pclose(fd);

Cito a memoria, quindi prendi con le pinze :).
	Mano :))



-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Germano Rizzo - mano@pluto.linux.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pluto FSUG member - www.pluto.linux.it
Linux Registered User #120637
PGP/GPG Public Key at
   http://gnomermind.sf.net/pubkey.txt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
An rud is annamh is iontach
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~