// exec.c — el hijo reemplaza su imagen por otro programa (wc).
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    const char *file = argc > 1 ? argv[1] : "exec.c";

    pid_t rc = fork();
    if (rc < 0) {
        perror("fork");
        exit(1);
    }
    if (rc == 0) {
        char *args[] = {"wc", "-l", (char *)file, NULL};
        execvp(args[0], args);
        perror("execvp");   // solo se llega aquí si exec falla
        exit(1);
    }

    waitpid(rc, NULL, 0);
    printf("padre: wc terminó\n");
    return 0;
}
