我有这个程序,我们称之为Host.主机做各种好事,但它需要能够在运行时通过命令行接受输入.这意味着它必须以某种方式发送其他进程数据然后退出.例如,我需要能够这样做:
./Host --blahblah 3 6 3 5
这应该以某种方式最终调用Host中的一些函数调用
handleBlahBlah(int x1, int y1, int x2, int y2){ //do some more sweet stuff }
Host是一个C程序,不需要支持多个实例.
一个例子是Amarok音乐播放器.随着Amarok的运行和播放,你可以输入"amarok --pause",它会暂停音乐.
我需要能够在Linux或Windows中执行此操作.最好是Linux.
实现这个的最简洁方法是什么?
如果您在Windows上,我会告诉您使用隐藏窗口来接收消息,但是自从您使用以来./
,我认为您需要基于Unix的东西.
在那种情况下,我会使用命名管道.Sun有一个关于命名管道的教程可能很有用.
该程序可能会创建管道和监听.你可以有一个单独的命令行脚本来打开管道,只是回显它的命令行参数.
您可以修改程序以支持命令行发送,而不是使用单独的脚本.在这种情况下你会做同样的基本事情.您的程序将查看它的命令行参数,如果适用,打开管道到程序的"main"实例,并发送参数.
如果它需要跨平台,您可能需要考虑使正在运行的实例侦听TCP端口,并让您从命令行启动的实例向该端口发送消息.