Maison > Opération et maintenance > exploitation et maintenance Linux > Quelle est la fonction fork sous Linux

Quelle est la fonction fork sous Linux

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2024-01-25 11:20:34
original
1237 Les gens l'ont consulté

"fork()" sous Linux est une fonction d'appel système utilisée pour créer un nouveau processus. Elle créera une copie du processus actuel, appelée processus enfant. Le processus enfant est presque identique au processus parent, y compris le code. les descripteurs de données et de fichiers ouverts, etc., ont le prototype "pid_t fork(void);".

Quelle est la fonction fork sous Linux

Sous Linux, fork() est une fonction d'appel système utilisée pour créer un nouveau processus. Cette fonction crée une copie du processus actuel, appelée processus enfant. Le processus enfant est presque identique au processus parent, y compris le code, les données, les descripteurs de fichiers ouverts, etc. Le prototype de la fonction

fork() est le suivant :

#include <sys/types.h>
#include <unistd.h>

pid_t fork(void);
Copier après la connexion

Parmi eux, pid_t est un type entier utilisé pour représenter l'ID du processus (PID). La fonction fork() n'a aucun paramètre.

Il y aura deux valeurs de retour après l'appel de la fonction fork() :

  • Dans le processus parent, fork() renvoie le PID du processus enfant (l'ID du processus enfant).
  • Dans le processus enfant, fork() renvoie 0.

Par conséquent, vous pouvez déterminer si le code actuel est exécuté dans le processus parent ou dans le processus enfant en jugeant la valeur de retour de fork().

Ce qui suit est un exemple de code simple qui démontre l'utilisation de base de la fonction 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;
}
Copier après la connexion

Dans le code ci-dessus, nous appelons la fonction fork() et déterminons si elle est actuellement dans le processus parent ou dans le processus enfant. basé sur la valeur de retour. Dans le processus parent, nous imprimons le PID du processus enfant ; dans le processus enfant, nous imprimons notre propre PID.

Il convient de noter que la fonction fork() copiera complètement la mémoire du processus parent vers le processus enfant, y compris le tas, la pile et les variables globales. Par conséquent, après fork(), le processus parent et le processus enfant exécuteront leurs propres codes séparément sans interférer les uns avec les autres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal