首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言建立進程入門:fork() 系統呼叫與 ps 指令驗證

     編輯:關於C語言

什麼是進程?

進程 = 正在執行中的程式實例。每個終端機指令、編輯器、Shell 都是獨立進程。

$ ps x
PID TTY STAT TIME COMMAND
5276 pts/2 Ss  0:00 bash      # 終端機 Shell
5297 pts/2 S+  0:00 vim       # 編輯器
5298 pts/1 R+  0:00 ps x      # ps 指令本身也是進程

進程 ID (PID) 與管理

  • PID:系統分配的唯一整數識別碼,從 0 遞增
  • PID 0, 1 為系統保留 (通常 0=swapper, 1=init/systemd)
  • 進程數量有系統上限 (/proc/sys/kernel/pid_max)

fork() 建立進程完整範例

#include <unistd.h>
#include <stdio.h>

int main() {
    pid_t pid = fork();
    sleep(5);  // 保持進程存活方便觀察

    if (pid > 0)
        printf("New process PID: %d\n", pid);  // 父進程印出子進程 PID
    else
        return 0;  // 子進程直接結束 (或可執行其他邏輯)

    return 0;
}

編譯執行與驗證

$ ./s
New process PID: 5456

$ ps x
5455 pts/2 S+  0:00 ./s    # 父進程
5456 pts/2 S+  0:00 ./s    # 子進程 (PID 符合輸出)
5457 pts/3 R+  0:00 ps x

fork() 成功返回子進程 PID (父進程) 與 0 (子進程);失敗返回 -1。子進程從 fork() 下一條指令開始執行,擁有父進程資源的完整副本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved