I have this code;
pid_t process;
process = fork();
if (process < 0){
//fork error
perror("fork");
exit(EXIT_FAILURE);
}
if (process == 0){
//i try here the execl
execl ("process.c", "process" , n, NULL);
}
else {
wait(NULL);
}
I don’t know if this use of fork() and exec() combined is correct. When I try to run the program from the bash I do not receive any result, so I thought it could be a problem in this part of code.
Thanks.
One problem is that
should read
Otherwise you’re assigning zero to
processand only callingexeclifresultis non-zero (i.e. never).Also, you’re trying to exec something called
process.c. There’s no doubt that one could have an executable calledprocess.c. However, conventionally names ending in.care given to C source code files. Ifprocess.cis indeed a C file, you need to compile and link it first.Once you’ve built the executable, you need to either place it somewhere on
$PATHor specify its full path toexecle(). In many Unix environments placing it in the current directory won’t be enough.Finally, it’s unclear what
nis in theexecle()call, but the name hints at a numeric variable. You need to make sure that it’s a string and not, for example, an integer.