我正在使用popen在linux下执行一个命令,然后4个进程使用相同的输出。 我试图再次复制文件描述符以将其传递给每个进程。 这里是我的代码:popen后重复的文件描述符
FILE* file_source = (FILE*) popen(source_command, "r");
int fd = fileno(file_source);
fdatasync(fd);
int dest_fd[4], y, total = 4;
for (y = 0; y < total; y++) {
dest_fd[y] = dup(fd);
}
实际上,如果总设置为1的IT工作鳍,改变总= 4后,不工作了。 这个答案太接近我所需要的: link
dup()是否返回-1?你有没有试图检查errno? – Vereb 2010-05-06 12:24:22
你是什么意思'不再工作'?我猜你的阅读失败,而不是'dup'失败 – Hasturkun 2010-05-06 13:13:27