进程间通信通过文件

当我在Linux中某些任意位置回显文件时,例如echo > /tmp/file ,一些正在运行的进程会响应。 这个IPC是通过文件pipe道吗?

这是否意味着一个正在运行的进程总是打开要读取的文件? 但是,如何写文件,因为文件stream被自己的进程locking了?

如果你想使用一个文件与另一个进程进行通信,你应该看看man fifo

我会在这里报告第一行:

 NAME fifo - first-in first-out special file, named pipe DESCRIPTION A FIFO special file (a named pipe) is similar to a pipe, except that it is accessed as part of the file system. It can be opened by multiple processes for reading or writing. When processes are exchanging data via the FIFO, the kernel passes all data internally without writing it to the file system. Thus, the FIFO special file has no contents on the file system; the file system entry merely serves as a reference point so that processes can access the pipe using a name in the file system. 

我认为这是你所需要的。

只要把它想成一个缓冲区。 必须打开阅读和写作不同的过程。 正在读取的进程将被阻塞,直到写入过程不写入。 当写入过程完成写入时,关闭文件,这是读取过程的绿灯开始清空缓冲区。 这是一个FIFO,所以写的第一行将是第一行。 然后,写作过程可以再次打开,然后重新开始。

你可以用mkfifo创建一个FIFO。 看看man mkfifo