Unix/Linux: обработчик SIGCONT/SIGTSTP
В настоящее время я пишу программу с использованием сигналов, и у меня есть эта проблема:
Как я могу изменить состояние исполняемой программы на остановлено / запущено без отправки SIGSTOP
/SIGCONT
?
Я понимаю, что мне нужно использовать:
void add_to_runqueue (struct task_struct * p)
а также
void del_from_runqueue (struct task_struct * p)
а как получить структуру task_struct запущенного в данный момент процесса?
Кроме того: если это все, что мне нужно сделать (вызов этих двух функций).
Заранее спасибо!
1 ответ
Эти функции будут функциями ядра, т.е. внутренними по отношению к ОС. Когда вы пишете программу, вам нужно выполнить соответствующие системные вызовы, в вашем случае kill
,
Если у вас есть идентификатор процесса программы (т.е. его номер), вы можете использовать
kill(pid, SIGSTOP);
а также
kill(pid, SIGCONT);
Вы не должны использовать SIGTSTP
если вы не знаете, что делаете.