<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 終端 在UNIX系統中,用戶通過終端登錄系統后得到一個Shell進程,這個終端成為Shell進程的控制終端(Controlling Terminal),進程中,控制終端是保存在PCB中的信息,而fork會復制PCB中的信息,因此由Shell進程啟動的其它進程的控制終端也是這個終端。 默認情況下(沒有重定向),每個進程的標準輸入、標準輸出和標準錯誤輸出都指向控制終端,進程從標準輸入讀也就是讀用戶的鍵盤輸入,進程往標準輸出或標準錯誤輸出寫也就是輸出到顯示器上。 信號中還講過,在控制終端輸入一些特殊的控制鍵可以給前臺進程發信號,例如Ctrl+C表示SIGINT,Ctrl+\\表示SIGQUIT。 ~~~ #include <unistd.h> ? char *ttyname(int fd); 功能:由文件描述符查出對應的文件名 參數: fd:文件描述符 返回值: 成功:終端名 失敗:NULL ~~~ ~~~ #include <unistd.h> #include <stdio.h> int main() { printf("fd 0: %s\n", ttyname(0)); printf("fd 1: %s\n", ttyname(1)); printf("fd 2: %s\n", ttyname(2)); return 0; } ~~~ # 進程組 進程組,也稱之為作業。BSD于1980年前后向Unix中增加的一個新特性。**代表一個或多個進程的集合。** 每個進程都屬于一個進程組。在waitpid函數和kill函數的參數中都曾使用到。操作系統設計的進程組的概念,是為了簡化對多個進程的管理。 當父進程,創建子進程的時候,默認子進程與父進程屬于同一進程組。進程組ID為第一個進程ID(組長進程)。所以,組長進程標識:其進程組ID為其進程ID 可以使用**kill -SIGKILL -進程組ID**(負的)來將整個進程組內的進程全部殺死: ![](https://img.kancloud.cn/62/b6/62b69c3d9cfd7b3fb9cb1b34462de6d3_798x222.png) 組長進程可以創建一個進程組,創建該進程組中的進程,然后終止。只要進程組中有一個進程存在,進程組就存在,與組長進程是否終止無關。 進程組生存期:進程組創建到最后一個進程離開(終止或轉移到另一個進程組)。 一個進程可以為自己或子進程設置進程組ID。 # 相關函數 ~~~ #include <unistd.h> ? pid_t getpgrp(void); /* POSIX.1 version */ 功能:獲取當前進程的進程組ID 參數:無 返回值:總是返回調用者的進程組ID ? pid_t getpgid(pid_t pid); 功能:獲取指定進程的進程組ID 參數: pid:進程號,如果pid = 0,那么該函數作用和getpgrp一樣 返回值: 成功:進程組ID 失敗:-1 ? int setpgid(pid_t pid, pid_t pgid); 功能: 改變進程默認所屬的進程組。通常可用來加入一個現有的進程組或創建一個新進程組。 參數: 將參1對應的進程,加入參2對應的進程組中 返回值: 成功:0 失敗:-1 ~~~
                  <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>

                              哎呀哎呀视频在线观看