利用消息将一个进程的数据发送到另一个进程(Linux)
Posted
技术标签:
【中文标题】利用消息将一个进程的数据发送到另一个进程(Linux)【英文标题】:Send data of one process to another process utilizing messages (Linux) 【发布时间】:2012-10-17 06:19:18 【问题描述】:我需要用 C 语言编写一个通过键盘获取用户名的进程。当他按下回车键时,进程进入睡眠状态。然后我需要第二个进程在收到消息后唤醒,将用户名保存在文件中,然后进入睡眠状态并向第一个程序发送一个信号,表明它已经完成,这反过来又唤醒了第一个程序。
我知道我应该使用信号和消息 ID,但我不清楚如何处理进程之间的通信。
#include <signal.h>
#include <stdio.h>
void m.signal(int x)
printf("A signal has arrived.");
int main()
signal(100, m.signal);
while(1)
pause()
【问题讨论】:
您当然可以为此使用信号,但如果这两个进程是父/子进程,您可能会发现仅使用管道要容易得多,因为您将获得数据 xfer 通道作为免费赠品无需设置其他东西。m.signal
是什么意思?似乎是有效的 C 代码。
【参考方案1】:
可以使用Pipes
进行进程间通信。对于 Windows,请参阅 Interprocess Communications 和/或 Named Pipes。对于 Linux,我建议阅读 Inter process communication using named pipes(FIFO) in linux 。
【讨论】:
以上是关于利用消息将一个进程的数据发送到另一个进程(Linux)的主要内容,如果未能解决你的问题,请参考以下文章
Linux。 C 中的管道。将数据发送到另一个进程。写作和阅读