Unix / Linux: обработчик SIGCONT / SIGTSTP - PullRequest
0 голосов
/ 07 июня 2011

В настоящее время я пишу программу с использованием сигналов, и у меня возникла такая проблема:

Как изменить состояние выполнения программы на остановку / выполнение без отправки SIGSTOP / SIGCONT?

Я понимаю, что мне нужно использовать:

 void add_to_runqueue (struct task_struct * p)

и

void del_from_runqueue (struct task_struct * p)

, но как получить структуру task_struct текущего запущенного процесса?

Также: если это все, что мне нужно сделать (вызывая эти две функции).

Заранее спасибо!

1 Ответ

1 голос
/ 07 июня 2011

Эти функции будут функциями ядра, то есть внутренними по отношению к ОС.Когда вы пишете программу, вам нужно выполнить соответствующие системные вызовы, в вашем случае kill.

Если у вас есть идентификатор процесса программы (т.е. его номер), вы можете использовать

kill(pid, SIGSTOP);

и

kill(pid, SIGCONT);

Не следует использовать SIGTSTP, если вы не знаете, что делаете.

...