#include <unistd.h>
#include <fcntl.h>
int exec[2];
int pipesize = 8192;
if(pipe(exec) ==-1) {
perror("pipe");
return -1;
}
fcntl(exec[1],F_SETPIPE_SZ,&pipesize);
我正在运行这段代码,但我得到一个错误说F_SETPIPE_SZ是未声明的。我用的是Ubuntu 13.04,有什么问题吗?
F_SETPIPE_SZ
是Linux特有的。您需要添加:
#define _GNU_SOURCE
在包含fcntl.h
之前。这在手册页的符合一节中有记录。