typestar

fork en C

fork retorna dos veces: cero en el hijo y el pid del hijo en el padre.

#include <stdio.h>
#include <sys/wait.h>
#include <unistd.h>

int main(void) {
    pid_t pid = fork();

    if (pid < 0) {
        perror("fork");
        return 1;
    }
    if (pid == 0) {
        printf("child %d\n", (int) getpid());
        return 7;
    }

    int status = 0;
    waitpid(pid, &status, 0);
    if (WIFEXITED(status)) {
        printf("child exited with %d\n", WEXITSTATUS(status));
    }
    return 0;
}

Cómo funciona

  1. Ambos procesos continúan desde la misma línea.
  2. El padre debe esperar, o deja un zombi.
  3. Un retorno de -1 significa que el fork falló.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
23
Caracteres a escribir
345
Tokens
108
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 62 segundos.

Escribe este fragmento

Paso 1 de 4 en Procesos y señales; paso 7 de 14 en Programación de sistemas.

← Anterior Siguiente →