ฉันจะรับกระบวนการสถานะในโครงการ C ได้อย่างไร [ซ้ำ]

Aug 18 2020

สำหรับโครงการ C ของฉันฉันจำเป็นต้องรู้ว่ากระบวนการต่างๆอยู่ในสถานะใด (กำลังทำงาน, รอ, สิ้นสุด, ... ) กระบวนการต่างๆถูกสร้างขึ้นโดยตัวฉันเองโดยใช้ส้อม () ใครมีความคิดว่าจะทำอย่างไร?

ตัวอย่าง: ฉันมีกระบวนการที่มี PPID = x ฉันทำ 3 fork () -> ฉันได้รับสามกระบวนการใหม่ด้วย PID = x + 1, PID = x + 2 และ PID = x + 3 (มากหรือน้อย) ฉันต้องการทราบว่ากระบวนการที่มี PID = x + 1, PID = x + 2 และ PID = x + 3 กำลังทำงานอยู่หรือกำลังรอหรือสิ้นสุด

คำตอบ

AnthonySchanen Aug 17 2020 at 23:24

ถ้าคุณทำ 3 fork()คุณมีกระบวนการใหม่มากกว่า 3 กระบวนการ คุณมีกระบวนการ 2 ^ n n คือจำนวนครั้งที่คุณโทรfork()

ตัวอย่างเช่น

#include <stdio.h> 
#include <sys/types.h> 
int main() 
{ 
    fork(); 
    fork(); 
    fork(); 
    printf("hello\n"); 
    return 0; 
}

พิมพ์สิ่งนี้

hello
hello
hello
hello
hello
hello
hello
hello

ฉันเชื่อว่าคำถามของคุณได้รับคำตอบที่นี่แล้ว