dup2

    0熱度

    1回答

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> int main(void) { int pfd1[2]; int pfd2[2]; pid_t pid1, pid

    1熱度

    1回答

    void pipe_execute(char all[][MAX_SIZE],int i,int n) { if(i==n) { execute(all[i-1]); } else { int fd[2]; char cmd1[100]; pipe(fd); pid_t pid = fo

    1熱度

    1回答

    我還不熟悉進程,管道和dup2,因此我希望有人能幫我弄清楚我創建的程序有什麼問題。這個程序應該運行ls | wc。到目前爲止輸出我得到的是: wc : standard input : Bad file descriptor 0 0 0 ls : write error : Bad file descriptor 後,我得到這個輸出,終端仍然接受輸入。這就像wc仍然在運行

    0熱度

    1回答

    我目前正在研究一個小外殼,並試圖執行由多個命令組成的作業(如「ls | sort」)。 由於排序程序似乎遇到了「錯誤的文件描述符」,所以我在重定向時遇到了問題。 下面的代碼: 第一個命令: if (pipe(job->tubes[num_comm]) == -1) { perror("Erreur création tube"); ex

    0熱度

    1回答

    我有一個調用另外一個C程序,就像 system("path/program2 path/file.txt"); 使程序可以處理指令文件。該程序提供了我想在我的C程序中使用的信息,但我沒有「program2」的源,因此我無法編輯它。 目前我正在編寫一個文件(我可以選擇在控制檯上顯示信息或寫入文件之間進行選擇),然後在我的C程序中打開文件然後閱讀,但我想也許這是可能的使它更好,但我真的生鏽的C .

    0熱度

    1回答

    複製調用dup的文件描述符fd,並關閉原始文件描述符。 是否所有重複的文件描述符也關閉?

    1熱度

    1回答

    寫入之後從管道中讀取我創建了一個功能exec_in_child這需要命令行參數,管文件描述符(fds),read_flag和write_flag作爲輸入。當write_flag設置爲1時,子進程應複製stdout至fds[1],然後執行該命令。當read_flag設置爲1時,孩子應該複製stdin至fds[0]並執行該命令。 當我正在讀/寫 的另一端時,是否必須關閉管道的一端? 下面的代碼不起作用

    0熱度

    1回答

    我一直想創建一個子進程,兩次分叉創建兩個子進程。輸出一個,發送給另一個。 我找到了這個示例代碼。但我很困惑它是如何工作的。 我找到了example here。但是,我對dup的使用方式以及它的工作原理感到困惑。 即 close(1); dup(fd[1]); close(fd[0]); close(fd[1]); 輸出然後用管道輸送到第二叉形的過程,它的配管連接是這樣的: close(0

    0熱度

    1回答

    我正在嘗試在Linux上的dup2。我的測試程序是:我打開一個管道,嘗試複製stdin到fifo寫入,dup stdout到fifo讀取,我希望當我運行這個程序時,stdin被寫入fifo,並且fifo自動將內容轉儲到標準輸出: #include<stdio.h> #include<unistd.h> int main(){ int pipefd[2]; pipe(pipe

    0熱度

    1回答

    我想通過套接字重定向我的stdin,stdout和stderr。 此代碼在Linux上工作: dup2(socket, 0); dup2(socket, 1); dup2(socket, 2); 但Windows因爲套接字沒有描述符。 如何在Windows中執行此操作?