利用消息将一个进程的数据发送到另一个进程(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)的主要内容,如果未能解决你的问题,请参考以下文章

将快速文本输入发送到另一个进程(窗口)

PostThreadMessage 到另一个进程

Linux。 C 中的管道。将数据发送到另一个进程。写作和阅读

C#在没有确认的情况下将一位信息(=布尔值)发送到另一个进程

将大字节流缓冲区发送到另一个进程

c# 将键盘命令发送到另一个窗口/进程