"fork()" dalam Linux ialah fungsi panggilan sistem yang digunakan untuk mencipta proses baharu. Ia akan mencipta salinan proses semasa, dipanggil proses anak hampir sama dengan proses induk, termasuk kod. data dan deskriptor fail Buka, dsb., mempunyai prototaip "pid_t fork(void);".
Di Linux, fork() ialah fungsi panggilan sistem yang digunakan untuk mencipta proses baharu. Fungsi ini mencipta salinan proses semasa, dipanggil proses kanak-kanak. Proses anak hampir sama dengan proses induk, termasuk kod, data, deskriptor fail terbuka, dsb. Prototaip fungsi
fork() adalah seperti berikut:
#include <sys/types.h> #include <unistd.h> pid_t fork(void);
Antaranya, pid_t ialah jenis integer yang digunakan untuk mewakili ID proses (PID). Fungsi fork() tidak mempunyai parameter.
Akan ada dua nilai pulangan selepas fungsi fork() dipanggil:
Oleh itu, anda boleh menentukan sama ada kod semasa dilaksanakan dalam proses induk atau proses anak dengan menilai nilai pulangan fork().
Berikut ialah contoh kod ringkas yang menunjukkan penggunaan asas fungsi fork():
#include <stdio.h> #include <unistd.h> int main() { pid_t pid = fork(); if (pid < 0) { fprintf(stderr, "Fork failed. "); return 1; } else if (pid == 0) { printf("This is the child process. PID: %d ", getpid()); } else { printf("This is the parent process. Child PID: %d ", pid); } return 0; }
Dalam kod di atas, kami memanggil fungsi fork() dan menentukan sama ada ia sedang dalam proses induk atau proses anak berdasarkan nilai pulangan. Dalam proses induk, kami mencetak PID proses kanak-kanak, kami mencetak PID kami sendiri.
Perlu diingat bahawa fungsi fork() akan menyalin sepenuhnya memori proses induk kepada proses anak, termasuk timbunan, tindanan dan pembolehubah global. Oleh itu, selepas fork(), proses induk dan proses anak akan melaksanakan kod mereka sendiri secara berasingan tanpa mengganggu satu sama lain.
Atas ialah kandungan terperinci Apakah fungsi fork dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!