假设以下简单的代码数据:哪里linux内核保持写入管
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
main()
{
int fd[2];
pipe(fd);
// ...
write(fd, buf, VERY_BIG_NUMBER);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
现在我的问题:
- 有人能解释其中写将会把这些数据?
- 是否写入位于用户空间或内核空间的某个缓冲区?
- 什么是可以写入管道的最大长度?
- 由于管道写入操作是阻塞操作,内核效率是不是没有任何作用,并等待读者直接将数据传递给它?
[人7管(http://man7.org/linux/man-pages/man7/pipe.7.html) – rici
@rici我只是咨询人2,感谢您指出正确的页面。 – redobot