Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm fork() trong C


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:~$