<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 管道:復習題 > 原文:<https://github.com/angrave/SystemProgramming/wiki/Pipe%3A-Review-Questions> > 問題編號可能會有變化 ## Q1 填寫空白以使下面的程序打印 123456789.如果`cat`沒有參數,它只是打印輸入直到 EOF。獎金:解釋為什么下面的`close`電話是必要的。 ```c int main() { int i = 0; while(++i < 10) { pid_t pid = fork(); if(pid == 0) { /* child */ char buffer[16]; sprintf(buffer, ______,i); int fds[ ______]; pipe( fds); write( fds[1], ______,______ ); // Write the buffer into the pipe close( ______ ); dup2( fds[0], ______); execlp( "cat", "cat", ______ ); perror("exec"); exit(1); } waitpid(pid, NULL, 0); } return 0; } ``` ## Q2 使用 POSIX 調用`fork` `pipe` `dup2`和`close`來實現自動編程程序。將子進程的標準輸出捕獲到管道中。子進程應該`exec`程序`./test`沒有其他參數(進程名稱除外)。在父進程中從管道讀取:一旦捕獲的輸出包含!就退出父進程!字符。在退出父進程之前,將 SIGKILL 發送到子進程。如果輸出包含!,則退出 0。否則,如果子進程退出導致管道寫入結束,則退出值為 1.確保在父進程和子進程中關閉管道的未使用端 ## Q3(高級) 這個高級挑戰使用管道讓“AI 玩家”自己玩,直到游戲完成。程序`tictactoe`接受一行輸入 - 到目前為止的轉彎順序,打印相同的順序,然后再轉動,然后退出。使用兩個字符指定轉彎。例如,“A1”和“C3”是兩個相對的角位置。字符串`B2A1A3`是 3 轉/ plys 的游戲。有效響應是`B2A1A3C1`(C1 響應阻止對角線 B2 A3 威脅)。輸出行還可以包含后綴`-I win` `-You win` `-invalid`或`-draw`使用管道來控制創建的每個子進程的輸入和輸出。當輸出包含`-`時,打印最終輸出行(整個游戲序列和結果)并退出。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看