Здесь я хочу выполнить одну команду, и я должен дать ввод этой команде после выполнения первой.Может ли кто-нибудь объяснить мне popen() с режимом записи
Я хочу выполнить команду obex_test
для режима bluetooth , чем после того, как я должен указать ввод как 's' для запуска сервера, так как я могу дать эту вещь. вот мой код, я пишу эту штуку и получил выход. я получил ошибку входных данных после выполнения команды obex_test
.
Код:
#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);
}
выход:
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
С выходом после этой строки OBEX Interactive test client/server.
я должен дать вводимый символ «S», но я не могу в состоянии сделать это direclty его идет бесконечный цикл и принтf >Unknown command
.
u попытаться выполнить? – user1089679
Где я это сказал? эти две линии? – user1089679
Да, я подтвердил этот пример на основе меню. вы можете поместить эту строку в код ur после команды popen() и перед тем, как pclose() –