ฉันจะรับกระบวนการสถานะในโครงการ 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
ฉันเชื่อว่าคำถามของคุณได้รับคำตอบที่นี่แล้ว