我有这个程序,我们称之为主机。 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 的东西。
在那种情况下,我会选择 named pipe . Sun 有一个 tutorial关于可能有用的命名管道。
该程序可能会创建管道并进行监听。您可以有一个单独的命令行脚本,它会打开管道并将其命令行参数回显给它。
您可以修改您的程序以支持命令行发送,而不是使用单独的脚本。在那种情况下,你会做同样的基本事情。您的程序会查看它的命令行参数,如果适用,打开到程序“主”实例的管道,并通过它发送参数。
关于c - 通过命令行向程序发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10443/