我正在使用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