S.O.Tarea1-Procesos

Procesos en C

¿Qué es un proceso?

Un proceso es una instancia de un programa en ejecución. Un programa puede tener múltiples procesos ejecutándose simultáneamente.

Crear un proceso

En C, los procesos se crean utilizando la función fork(). Esta función crea un nuevo proceso duplicando el proceso que la llama.

Ejemplo básico de fork()

#include <stdio.h>
#include <unistd.h>

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

    if (pid == 0) {
        // Código del proceso hijo
        printf("Soy el proceso hijo\n");
    } else if (pid > 0) {
        // Código del proceso padre
        printf("Soy el proceso padre\n");
    } else {
        // Error al crear el proceso
        perror("fork");
        return 1;
    }

    return 0;
}

Funciones principales

Ejemplo de exec()

#include <stdio.h>
#include <unistd.h>

int main() {
    char *args[] = {"/bin/ls", NULL};
    execvp(args[0], args);
    // Si execvp falla
    perror("execvp");
    return 1;
}

Ejemplo de wait()

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

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

    if (pid == 0) {
        // Código del proceso hijo
        printf("Soy el proceso hijo\n");
    } else if (pid > 0) {
        // Código del proceso padre
        wait(NULL); // Espera a que el proceso hijo termine
        printf("El proceso hijo ha terminado\n");
    } else {
        // Error al crear el proceso
        perror("fork");
        return 1;
    }

    return 0;
}

Parámetros

Ventajas de los procesos

Consideraciones

Notas para principiantes

Documentación oficial

Para más información, consulta la documentación oficial de las funciones mencionadas: