Apakah fungsi fork dalam Linux

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2024-01-25 11:20:341186semak imbas

"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);".

Apakah fungsi fork dalam Linux

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:

  • Dalam proses induk, fork() mengembalikan PID proses anak (ID proses anak).
  • Dalam proses anak, fork() mengembalikan 0.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn