hiho .. ich habe mal zwei Beispiele:
int main()
{
FILE *fp;
char status[256];
fp = popen("whoami", "r");
fscanf(fp, "%s", status);
printf("Ausgabe= %s
", status);
return 0;
}
und
int main()
{
FILE *fp;
char status[256];
fp = popen("/usr/sbin/adsl-start", "r");
fscanf(fp, "%s", status);
printf("Ausgabe= %s
", status);
return 0;
}
Jetzt meine Frage: wenn die Ausgabe direkt von "whoami" erzeugt werde, dann kann ich dir Ausgabe auch weiterverarbeiten ... im Falle vom script adsl-start scheint das nicht der Fall zu sein - ich nehme an, die Ausgaben werden nicht vom script selbst erzeugt.
Wie kann ich die komplette ausgabe eines Shellscriptes (oder seiner Aufrufe) in meinem C-Programm weiterbehandeln ???
Ich brauche für ein DSL-Kontrollprogramm die Ausgabe, damit ich den Erfolg oder Mißerfolg des Einloggens dem User weitergeben kann ...
Ich danke euch schon mal für eure Hilfe
Fragen zu popen
Re: Fragen zu popen
Warum nicht einfach von stdin lesen?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#include <stdio.h>
int main()
{
char buffer[1024];
int i=0;
while( fgets( buffer, sizeof(buffer)-1, stdin ) ) {
printf( "%03i - %s", i++, buffer );
}
}
</font><hr></pre></blockquote>
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#include <stdio.h>
int main()
{
char buffer[1024];
int i=0;
while( fgets( buffer, sizeof(buffer)-1, stdin ) ) {
printf( "%03i - %s", i++, buffer );
}
}
</font><hr></pre></blockquote>
Re: Fragen zu popen
Einfach mein Beispiel als xyz.c abspeichern und compilieren, z.B. gcc -o xyz xyz. Dann mal von
cat /etc/passwd | ./xyz
die Bildschirmausgabe anschauen.
Du muesstes in der Zeile ansetzen, in der ich
printf( "%03i - %s", i++, buffer );
stehen habe.
cat /etc/passwd | ./xyz
die Bildschirmausgabe anschauen.
Du muesstes in der Zeile ansetzen, in der ich
printf( "%03i - %s", i++, buffer );
stehen habe.
Re: Fragen zu popen
danke .. habs schon <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">