有没有办法在c语言中从一个进程传递数据(例如int值)到另一个进程?
根据我的经验,我们只能从一个进程发送信号到另一个进程。但是似乎没有办法将一些信息“附加”到该信号以传递给另一个进程。
有没有办法在c语言中从一个进程传递数据(例如int值)到另一个进程?
根据我的经验,我们只能从一个进程发送信号到另一个进程。但是似乎没有办法将一些信息“附加”到该信号以传递给另一个进程。
使用sigqueue
函数,你可以同时传递一个整数或指针和信号(但需要注意的是,如果信号的目标是另一个进程,指针将无效,因为不同的进程不共享地址空间)。
其他一些方法包括管道、共享内存(POSIX或SysV样式)、文件等。
使用 Socket 是一种干净、便携、强大的方式。
您可以使用管道来实现这个功能。管道的主要目的是在不同进程之间传递数据。
管道是操作系统提供的最简单的进程间通信机制之一。管道是两个进程之间的通信缓冲区,它有两个描述符,一个用于写入另一个用于读取。写和读操作按照先进先出(FIFO)的顺序进行。
有两种类型的管道:无名管道和命名管道(也称为FIFO)。
如果您需要一些示例代码,请访问此处:http://pastebin.com/1W216nyN
我认为我们可以在进程之间使用全局变量,但不确定。如果有人尝试过,请告诉我。如果我们使用包含外部变量的头文件,则可以在另一个main()中使用它,这只是一个独立的程序(进程)。但是我们必须将两个main()链接在一起才能执行。
extern
关键字用于声明来自其他编译单元(源文件)的外部变量。<br/>而且你不能“链接”两个main()函数。 - philant
SIGUSR1
和SIGUSR2
每次传输一个比特。;-) - R.. GitHub STOP HELPING ICE