在这里我想执行一个命令,我必须在执行第一个命令后给这个命令输入。
我想obex_test
为蓝牙模式执行命令,而不是在我必须提供像“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',但我无法直接执行此操作,它会进入无限循环和 printf >Unknown command
。