Я новичок в системном программировании и мне интересно, как работает функция exec.Мой первый вопрос: почему ребенок никогда не печатает «Я - ребенок» после вызова exec.Как exec заменяет дочерний процесс?Мой второй вопрос: почему программа (после вызова exec) продолжает работу и запрашивает еще один аргумент командной строки, прежде чем он полностью завершится.Я не уверен, что здесь происходит.Любой, кто мог бы объяснить, что происходит, будет очень признателен.Вот код:
#include <stdio.h>
#include <unistd.h>
int main(void) {
if(fork() == 0){
printf("Hello from child!\n");
execl("/usr/bin/sort", "sort", "talk.c",NULL);
printf("I'm the child\n");
}
else{
printf("Hello from parent!\n");
printf("Iam the parent\n");
}
return 0;
}