Kann Jemand mir Erklären popen() mit write-Modus
Hier möchte ich Ausführen, einem Befehl und ich gebe zu, diesen Befehl nach der Ausführung der ersten ein.
möchte ich ausführen obex_test
Befehl für den bluetooth-Modus
als nach ich zu geben habe-input wie 's' für Start-server also wie kann ich das Ding.
hier ist mein code, den ich Schreibe diese Sache und bekam Ausgang. ich erhielt den Fehler des input-Daten nach der Ausführung obex_test
Befehl.
Code:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
void main() {
char *input = "obex_test -b";
FILE *fp = NULL;
char path[512];
fp = popen(input, "w");
if (fp == NULL)
{
printf("\nFailed command\n");
return;
}
else
{
printf("\nSuccesss command\n");
}
printf("starting while : %d", fp);
while (fgets(path, sizeof(path) - 1, fp) != NULL) {
printf("\nOutput ::: %s \n", path);
}
printf("\nEnd\n");
/* close */
pclose(fp);
}
Ausgabe :
Successs command
starting while : 69640
End
Using Bluetooth RFCOMM transport
OBEX Interactive test client/server.
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
> Unknown command
Vom Ausgang nach dieser Zeile OBEX Interactive test client/server.
ich gebe Zeichen 's', aber ich nicht in der Lage, das zu tun diese direkt Ihren geht endlos-Schleife und printf >Unknown command
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
oh, wenn Sie möchten, geben input zu popen Befehl, indem Sie Ihre c-Datei, dann versuchen Sie auf diese Weise
hier, wenn Sie möchten, geben Sie s die option dann schreiben
's'
fp ist der Dateizeiger von
popen()
funktioniert es einwandfrei
in Ihrem code :
Edit: zu überwinden für ingourmet-Schleife
jedes mal geben zwei neue-Zeile-Zeichen nach der Angabe von option
wie
Wenn Sie übergeben möchten Zeichen (stdin) Optionen, die Sie verwenden können, fputc oder noch besser, fputs