两台应用程序在同一台本地机器之间通信

时间:2010-06-26 04:28:14

标签: c linux

我使用C语言和Linux作为我的编程平台。

我正在开发一个在后台运行的用户空间应用程序,就像一个守护进程。我的问题是,我希望另一个用户空间应用程序与此守护进程通信。

我知道我必须使用进程间通信方法,但我不知道什么是正确的实现。

但在我的通信实施中使用IPC是我的另一种选择。实际上我只是想通过使用另一个应用程序来更改我的守护进程的属性。请参阅下面的senario:

  1. 我的守护进程在后台运行。
  2. 然后一些应用程序将控制守护进程的属性,如睡眠延迟时间。
  3. 我的第一个选择是访问包含属性值的文件。所以我的守护者会调查那些价值观。而另一个应用程序将改变这些值。

    我不确定我的选择效率。请指教。

    感谢。

5 个答案:

答案 0 :(得分:4)

更新配置文件并发送信号以重新读取是一种标准做法,既便宜又简单。

答案 1 :(得分:3)

您正在寻找D-Bus。将初始值存储在一个文件中,然后通过D-Bus监听请求更改它。

答案 2 :(得分:2)

Unix域套接字是一种简单的IPC方法。

答案 3 :(得分:2)

如果我是你,我会完全放弃IPC,而是让守护程序监视配置文件以进行更改。只有当你每秒发送数千封邮件时,才真正需要IPC,并且开销将无法忍受。

inotify是文件监控的一个选项。

答案 4 :(得分:1)

如果它很简单,你只需要读取从另一个程序输入的几个字节,我就让守护进程监听管道/ fifo。否则,本地域套接字很适合运行简单的协议。