为交互模式制作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库,必须改变这个东西。