【发布时间】:2012-04-29 21:34:22
【问题描述】:
我正在使用异步管道进行进程间通信(为了简化,我删除了错误检查)
int pipe_fd[2];
pipe(pipe_fd);
int fdflags = fcntl(pipe_fd[1], F_GETFL, 0);
fdflags |= O_NONBLOCK;
fcntl(pipe_fd[1], F_SETFL, fdflags);
我正在寻找一种增加管道内部缓冲区大小的方法。 我知道可以使用 Kernel >= 2.6.35 通过以下方式:
fcntl(fd, F_SETPIPE_SZ, size);
或写信至:
/proc/sys/fs/pipe-max-size
但我正在使用内核 2.6.18 开发 CentOS 5。 是否可以使用 Kernel 2.6.18 增加管道内部缓冲区大小?如果是,该怎么做?
【问题讨论】:
标签: c linux multithreading ipc pipe