假设我在 Linux 环境中只使用 C。
通常,如果您想使用 pipe() 函数,您会创建一个管道然后将其 fork ,从而允许父项与子项通信,反之亦然。
但是如果不是父子呢?如果我有一个正在运行的旧进程,是否可以使用 pipe() 函数与其通信?这个进程不是我当前进程的父进程(或以任何方式与之相关),但我有它的 pid。我是否仅限于文件或套接字进行进程间通信?
有什么方法可以在不使用套接字的情况下指定 pid 并从中接收信息?
最佳答案
对于你的问题
But what if It's not a parent and child? If I have an old process that's running, is it possible to communicate with it using the pipe() function?
您将无法与不是由父进程创建的任何其他进程通信。从技术上讲,你不应该被允许这样做。
您需要通过操作系统或使用其他 IPC 机制来实现此功能。
正是由于这个主要原因,数据库才被广泛使用。多个进程将能够读取数据并将数据写入单个数据库。防止多次更新。
关于c - C 中的管道 - 我必须使用 fork 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26728181/