вгу воронеж

сигнал, приостанавливающий выполнение потока (нити) линукс си

сигнал

SIGSTOP

и есть сигнал, приостанавливающий выполнение потока (нити) линукс си

получить id нити линукс

получить id нити в линукс можно вызвав функцию gettid(2) =

#include <sys/types.h>
pid_t gettid(void);

например =

#include <sys/types.h>
main
{
  pid_t my_tid;
  my_tid = gettid();
}

pthread_kill(3) функция - отправить сигнал потоку

отправить сигнал потоку в линукс можно с помощью функции pthread_kill(3)
сигнатура функции =

#include <signal.h>
int pthread_kill(pthread_t thread, // идентификатор нити
                 int sig); // сигнал , который отправляем
_____________________________________________
Источники(читать подробнее)=
Ключевые слова и фразы(для поиска)=

man страницы все разделы , все страницы

хорошо представлены здесь = http://linux.die.net/man/

SIGHUP сигнал

SIGHUP - стандартным действием программы при получении такого сигнала является завершение собственной работы

Системный вызов sigprocmask()

Системный вызов sigprocmask() - служит для редактирования списка, блокированных в данный момент сигналов.

сигнатура =

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); 

пример вызова =

маска сигналов процесса + sigset_t definition

Маска сигналов -это некий набор значений, который может быть "упакован" в переменную типа sigset_t, обратившись к которому можно узнать какие сигналы заблокированы.

определение типа=

тип sigset_t определяется так =

typedef __sigset_t sigset_t;

а тип __sigset_t , в свою очередь, так =

Пример обработки сигналов линукс си

исходник взят отсюда

В следующем пример мы сделаем две вещи =

  1. назначим процессу обработчик для сигнала SIGTERM (функция term_handler() )
  2. заблокируем сигнал SIGHUP, так что этот сигнал не может завершить наш процесс

Код и комментарии=

if not defined

use this =

Pages

Subscribe to RSS - вгу воронеж