【问题标题】:Send data of one process to another process utilizing messages (Linux)利用消息将一个进程的数据发送到另一个进程(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 代码。

标签: c process signals sleep wakeup


【解决方案1】:

可以使用Pipes 进行进程间通信。对于 Windows,请参阅 Interprocess Communications 和/或 Named Pipes。对于 Linux,我建议阅读 Inter process communication using named pipes(FIFO) in linux

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2011-07-21
    相关资源
    最近更新 更多