Trong phần này chúng ta sẽ tìm hiểu lời gọi hệ thống fork() trong C. Lời gọi này dùng để tạo tiến trình mới, gọi là tiến trình con. Tiến trình hiện tại tạo ra tiến trình con gọi là tiến trình cha.
Tiến trình con sử dụng cùng bộ đếm chương trình, thanh ghi CPU, và các tập tin như tiến trình cha.
fork() không nhận tham số, trả về giá trị nguyên. Có ba trường hợp trả về:
Số âm: Trả về khi tạo tiến trình con thất bại
Giá trị 0: Trả về cho tiến trình con mới tạo
Giá trị dương: Trả về cho tiến trình cha (là PID của tiến trình con)
Ví dụ mã
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main() {
fork(); // tạo tiến trình con cùng loại
printf("Fork testing code\n");
return 0;
}Kết quả
soumyadeep@soumyadeep-VirtualBox:~$ ./a.out Fork testing code soumyadeep@soumyadeep-VirtualBox:~$ Fork testing code soumyadeep@soumyadeep-VirtualBox:~$