当前位置:  开发笔记 > 运维 > 正文

通过命令行向程序发送消息

如何解决《通过命令行向程序发送消息》经验,为你挑选了2个好方法。

我有这个程序,我们称之为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.

实现这个的最简洁方法是什么?



1> Derek Park..:

如果您在Windows上,我会告诉您使用隐藏窗口来接收消息,但是自从您使用以来./,我认为您需要基于Unix的东西.

在那种情况下,我会使用命名管道.Sun有一个关于命名管道的教程可能很有用.

该程序可能会创建管道和监听.你可以有一个单独的命令行脚本来打开管道,只是回显它的命令行参数.

可以修改程序以支持命令行发送,而不是使用单独的脚本.在这种情况下你会做同样的基本事情.您的程序将查看它的命令行参数,如果适用,打开管道到程序的"main"实例,并发送参数.



2> Stu..:

如果它需要跨平台,您可能需要考虑使正在运行的实例侦听TCP端口,并让您从命令行启动的实例向该端口发送消息.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有