如何在c中将数据从一个进程传递到另一个进程?

时间:2010-11-24 03:16:16

标签: c process communication signals

有没有办法将数据(例如:int值)从一个进程传递到c?

中的另一个进程

根据我的经验,我们可以将信号从一个进程发送到另一个进程。但看起来似乎无法将某些信息与该信号“附加”到另一个进程。

5 个答案:

答案 0 :(得分:1)

使用sigqueue函数,您可以传递一个整数或指针以及一个信号(但请记住,如果信号的目标是另一个进程,则指针将无用,因为不同的进程不会共享地址空间)。

其他一些方法是管道,共享内存(POSIX或SysV样式),文件......

答案 1 :(得分:1)

您可以使用各种可用的进程间通信机制。

使用Google。作为参考,您还可以查看here

答案 2 :(得分:0)

干净,便携,功能强大的方法是使用Socket。

答案 3 :(得分:0)

您可以使用管道来完成此操作。管道的主要目的是在不同进程之间传递数据。

管道是操作系统为进程间通信提供的最简单的机制。管道是两个进程之间的通信缓冲区:它有两个描述符,一个用于编写另一个用于读取。写入和读取操作以FIFO顺序完成(先进先出)。

有两种管道:未命名管道和命名管道(也称为FIFO)。

  • 未命名的管道仅允许在分层相关的进程(父进程和子进程)之间进行通信;
  • 命名管道允许任何进程之间的通信。通过
  • 在文件系统中创建一个特殊文件

如果您想要一些示例代码,请转到此处: http://pastebin.com/1W216nyN

答案 4 :(得分:-1)

我认为我们可以在进程之间使用全局变量,但不确定。如果有人试过,请告诉我。如果我们使用包含extern valriable的头文件,我们可以在另一个main()中使用它,这只是一个独立的程序(进程)。但我们必须将两个main()链接在一起执行。