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 если вы не знаете, что делаете.

Другие вопросы по тегам