这里有一个类似交互模式的命令:
obex_test -b $BD_ADDR $CH_NUM
此命令来自脚本,但我想通过C程序中的系统调用运行此命令。
obex_test
只是obex文件传输库。
在这里,我想通过蓝牙从远程设备接收文件到本地设备。
这是obex_test
请有人告诉我如何将C程序置于交互模式,如此命令,我也想使用此命令。
我使用popen(command,"r")
但它没用;它不接受用户的输入。
如果我使用"w"
模式,那么我不知道会发生什么;我直接收到>Unknown Command
之类的消息。当我们给出不同的选项时,这是该命令给出的错误。因此,它被视为一种写入模式。
答案 0 :(得分:1)
您可以拥有两对管道(使用pipe(2)系统调用创建);一个用于从您的程序到obex_test
的 stdin 以及一个从obex_test
的 stdout 到您的程序的数据。然后你会fork
和execve
...小心死锁(当你的输出管道已满并阻塞它时,你的程序在写入obex_test
stdin 时被阻止了) ,您可能需要致电poll(2)或select(2)
...
但是,正如手册页解释的那样,“obex_test
是libopenobex
库的测试应用程序”。那么为什么不直接调用这个libopenobex库中的函数来链接到你的程序呢?
答案 1 :(得分:-1)
您可以使用系统命令。有关详细信息,请查看手册页。 对于例如system(“obex_test -b 172.16.7.1 1234”);