Стартиране на дъщерен процес

#include<sys/types.h>
#include<unistd.h>
pid_t fork(void);
pid_t getpid(void);
pid_t getppid(void);
  • Успешно извикване на fork() създава нов процес, идентичен почти във всички аспекти с извикващия го процес.
  • Родителският процес получава идентификатора (pid) на дъщерния процес, а дъщерния процес получава нула.
  • При грешка и дъщерния процес не е създаден, fork() връща -1 и грешката (errno) може да бъде:
Грешка Пояснение
EAGAIN Ядрото не успя да разпредели определени ресурси, като например нов идентификатор (pid) на процес.
ENOMEM Няма достатъчно памет на ядрото за изпълнение на заявката.

Програмен фрагмен за стартиране на дъщерен процес:

pid_t pid = fork();
if(pid > 0)
{
    printPIDs("PARENT");
    wait(&child_status);
}
else if(!pid) {
    printPIDs("CHILD");
    exit(0);
}
else if(pid == -1) 
    printf("ERROR");
    return EXIT_FAILURE;
}

Повече информация: Linux Programming

results matching ""

    No results matching ""