Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为交互模式制作C程序_C_Linux_Bluetooth_Obex - Fatal编程技术网

为交互模式制作C程序

为交互模式制作C程序,c,linux,bluetooth,obex,C,Linux,Bluetooth,Obex,这里我有一个类似于交互模式的命令: obex_test -b $BD_ADDR $CH_NUM 这个命令来自一个脚本,但我想通过C程序中的系统调用来运行这个命令。 obex_test只不过是obex文件传输库。 这里我想通过蓝牙从远程设备到本地设备接收文件。 这是手册的第页 请任何人告诉我,我怎样才能把我的C程序在交互模式像这个命令,我想使用这个命令也 我使用了popen(命令,“r”),但它没有用;它不接受用户的输入。 如果我使用了“w”模式,那么我不知道会发生什么;我直接收到一条消息,如>

这里我有一个类似于交互模式的命令:

obex_test -b $BD_ADDR $CH_NUM
这个命令来自一个脚本,但我想通过C程序中的系统调用来运行这个命令。
obex_test
只不过是obex文件传输库。 这里我想通过蓝牙从远程设备到本地设备接收文件。 这是手册的第页

请任何人告诉我,我怎样才能把我的C程序在交互模式像这个命令,我想使用这个命令也

我使用了
popen(命令,“r”)
,但它没有用;它不接受用户的输入。
如果我使用了
“w”
模式,那么我不知道会发生什么;我直接收到一条消息,如
>未知命令
。当我们给出不同的选项时,这个命令会给出错误。因此它采用了某种写入模式。

您可以使用系统命令。查看手册页面了解更多详细信息。
例如系统(“obex_测试-b 172.16.7.1 1234”)

可以有两对管道(通过系统调用创建);一个用于将数据从您的程序发送到
obex\u test
的stdin,另一个用于将数据从
obex\u test
的stdout发送到您的程序。然后您将
fork
execve
。。。当心死锁(当您的程序的输出管道已满并被阻塞时,您的程序在写入
obex\u test
stdin时被阻塞),您可能需要调用或
选择(2)


然而,正如it手册页所解释的那样,“
obex_test
libopenobex
库的测试应用程序”。那么,为什么不直接调用这个库中的函数呢?您可以将这些函数链接到您的程序?

但是在执行之后,我必须给出输入something@user1089679是的,这不是你所说的“交互模式”吗?我不是在问如何使用系统调用。我问的是互动模式。你能给我举个例子吗?请解释我是初学者,阅读任何关于Linux或Unix编程的标准书籍,以了解更多关于管道、进程等的信息。。。。但在您的情况下,我强烈建议使用
libopenobex
库;对于unix编程和Linux编程,oki我将采用库方式。我会找到openobex库,必须改变这个东西。