Системный вызов exec заменяет текущий запущенный процесс некоторой программой, хранящейся на диске.Он сохраняет только системный сегмент исходного процесса (то есть: PID, файловые дескрипторы и другие системные компоненты). Он предоставляется ядром Linux / Unix, и есть несколько способов его вызвать, проверить различные определения exec согласно POSIX вhttp://pubs.opengroup.org/onlinepubs/009604499/functions/exec.html. Простая программа демострации будет выглядеть так:
#include <unistd.h>
#include <stdio.h>
int main()
{
printf("Giving control to ls!\n");
execl("/usr/bin/ls","ls",NULL);
printf("This should never be printed..\n");
return 0;
}
Эта программа печатает строку и выполняет 'ls', так что вы увидите сообщение, затем вывод ls, и все.Последняя строка не отображается, потому что ваш процесс был заменен.