Buenas, ando haciendo unas practicas de Real-time programming y no se porque cuando llamo al fork() no me crea el proceso hijo, fijo que es una gilipollez que no estoy viendo asi que a ver si alguien ve el fallo y me evita los cabezazos contra la mesa
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <sys/wait.h>
int main(void) {
pid_t pid;
int file, r, status;
char buffer [15];
file = open ("file.txt", O_CREAT|O_RDWR, 0777);
sprintf(buffer, "%d", file);
pid = fork();
printf("%d", pid); //este printf solo me esta imprimiendo el numero de proceso del padre
if (pid == 0){
printf("ejecuta el child"); //y esto no me lo imprime, asi que por eso deduzco que no esta creando el hijo
execl("./ex7child.exe", buffer, (char *) 0);
}
r=waitpid(pid,&status,WNOHANG);
while (r==0){
printf("\nParent is working");
sleep(1);
r=waitpid(pid,&status,WNOHANG);
if (r>0){
printf("\nChild has terminated");
}
}
return 0;
}
muchas gracias por echarle un vistazo!!