КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Подробнее о флагах
Лекция №2 int clone (int (*fn) (void*), void *stack, int flags, void *args)
Создает новый процесс в самом широком понимании. 1) указатель на функцию, которая будет запущена как новый поток 2) указатель на стек для нового процесса (конец стека) 3) флаги 4) аргумент функции CLONE_PARENT CLONE_FS – клонировать файловую систему (клонируется корневой или текущий каталог), если флага нет, то С получит копию, если есть, то В и С имеют общие корневой и текущий каталоги. CLONE_FILES – общими становятся таблицы файлов. CLONE_SIGHAND – общая обработка сигналов CLONE_VFORK – если установлен, то запускается процесс, а родительский процесс приостанавливается до остановки дочернего (выход по exit или вызов любой функции exec *) CLONE_VM – общей становится виртуальная память, в этом случае можно не указывать PARENT, FS, FILES (фактически создается поток).
pid_t wautpid (pid_t pid, int *status, int flags)
Ожидает завершение процесса(ов) 1) Если pid > 0, то мы ждем завершение процесса с указанным pid номером. Если pid = 0, ждем завершения любого дочернего процесса, который принадлежит к той же группе процессов, что и вызывающий. Если pid = -1, ждем завершение любого дочернего процесса. Если pid < -1, ждем завершение любого дочернего процесса из группы, номер которой равно модулю числа pid. 2) Указатель на нашу переменную, в которую будет записан код завершения процесса. 3) либо 0 либо WNOHANG – не вешаться, если установлен, то функция проверяет на завершенность процессы, не ожидая их завершения. Результат > 0 – номер процесса, который завершился; Результат = 0 – нет завершившихся процессов (дочерние есть, но они не завершены); Результат = -1 – ошибка. pid_t wait (int *st) – ждет завершения дочернего процесса. pid_t getpid() – получить номер процесса. pid_t getppid() – получить номер родителя.
Дата добавления: 2014-01-07; Просмотров: 295; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |