Install object
Αθανάσιος Οικονόμου
athoik at gmail.com
Wed Nov 21 13:43:07 EET 2007
2007/11/19, Mystical Groovy <djzet1 at otenet.gr>:
> Kalispera,
> xrisimopoiw to "system()" me to installpkg gia na egathistw ena .tgz
> package mesw tou programmatos mou.
> Yparxei mipos kai pio install object/function klp klp gia na me dieukolinei?
>
> epeidi den pisteuw, yparxei tropos perasw enan emulator tis konsolas
> mesa sto programma mou? dld na deixei to output diaforwn ergasiwn se ena
> box?
>
> p.x xrisimopoiw to system() mesw tou programmatos mou gia na kanw
> installpkg, kai emfanizw to output se ena box.
> elpizw na me katalavate :D
>
> Eyxaristw.
H system αν δεν κάνω λάθος κάνει fork και επιστρέφει χωρίς να
περιμένει. Ωστόσο η εντολή που έδωσες εκτελείται αλλά δεν παίρνεις το
output.
Επιστρέφει int αν εκτελέστηκε σωστά η όχι.
Μία λύση είναι να κάνεις redirect το output της εντολής σου σε ένα
αρχείο και μετά να διαβάζεις το αρχείο πχ.
FILE *fp, *fopen(); char c;
system("ls -l > tmp"); /* invoking bourne shell */
fp = fopen("tmp", "r");
while ( (c = getc(fp)) != EOF)) putchar(c);
fclose(fp);
Εδώ είναι γίνεται το ίδιο με την χρήση pipes
FILE *infp, *outfp, *popen( ); int c;
infp = popen("ls -l", "r"); /* equivelant to ls -l | thisprogram */
outfp = popen("mail qli", "w");
while ( ( c = getc(infp)) != EOF) fprintf(outfp, "%c", c);
pclose(infp);
pclose(outfp);
Ta παραπάνω παραδείγματα τα βρήκα εδώ:
http://www.softpanorama.org/Internals/System_calls/links.shtml
Ελπίζω να βοήθησουν.
More information about the Linux-greek-users
mailing list