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