J'ai deux programmes C, Project1A.c et Project1B.c. J'essaie d'utiliser execl() pour exécuter Project1A à partir de Project1B mais jusqu'à présent cela ne fonctionne pas.Comment appeler un programme C à partir d'un autre programme C
Project1B.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;
switch((pid = fork()))
{
case -1:
printf("I'm sorry, fork failed\n");
break;
case 0:
execl("Project1A.c", "./prog", NULL);
printf("EXECL Unsucessfull");
break;
default:
printf("This is some parent code\n");
break;
}
printf("End of Program\n");
return 0;
}
Vous ne pouvez pas exécuter un fichier source C. Vous devez exécuter un programme compilé. –
Vous devez attendre le processus enfant, ainsi que la valeur de retour test de exec si une erreur s'est produite. – dmi
Un "programme C" a très peu à voir avec les ordinateurs. C'est une description abstraite des instructions pour une machine abstraite. D'un autre côté, un programme *, pour de vrais ordinateurs, a très peu à voir avec C. Un programme est juste un programme. C est juste un moyen de * créer * des programmes, mais cela ne fait pas partie du résultat. –