ในส่วนนี้เราจะดูว่า system call fork() ในภาษา C คืออะไร ฟังก์ชัน fork() ใช้สร้างกระบวนการใหม่ (process) กระบวนการที่สร้างขึ้นใหม่นี้เรียกว่า child process กระบวนการปัจจุบันที่สร้าง child process เรียกว่า parent process
Child process ใช้ program counter, CPU register และไฟล์เดียวกับ parent process
fork() ไม่รับพารามิเตอร์ และคืนค่าเป็นจำนวนเต็ม อาจคืนค่า 3 แบบ:
- ค่าลบ: เมื่อสร้าง child process ล้มเหลว
- ศูนย์: คืนให้ child process ที่เพิ่งสร้างขึ้น
- ค่าบวก: คืนให้ parent process (เป็น PID ของ child)
ตัวอย่างโค้ด
#include <stdio.h> #include <sys/types.h> #include <unistd.h> int main() { fork(); // สร้าง child process printf("Fork testing code\n"); return 0; }ผลลัพธ์
soumyadeep@soumyadeep-VirtualBox:~$ ./a.out Fork testing code soumyadeep@soumyadeep-VirtualBox:~$ Fork testing code soumyadeep@soumyadeep-VirtualBox:~$