无名管道:PIPE
Linux内核中的管道
PIPE的内核层实现
我们可以使用locate命令来查看文件在那个位置,比find好用!!!!
sudo apt install mlocate
locate 文件名
struct pipe_inode_info {
struct mutex mutex;
wait_queue_head_t rd_wait, wr_wait;
unsigned int head;
unsigned int tail;
unsigned int max_usage;
unsigned int ring_size;
#ifdef CONFIG_WATCH_QUEUE
bool note_loss;
#endif
unsigned int nr_accounted;
......
#endif
};
通信原理
- 管道是一个文件(pipefs):
- 内核将一个缓冲区与管道文件进行关联、封装
- 用户可通过open/read/write/close等I/O接口进行读写
Pipe管道编程
创建一个管道
- 函数原型:
- int pipe(int pipefd[2]);
- int pipe2(pipefd[2], iny flags);
- 函数参数:管道的两个文件描述符: