The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование в Linux" / Оглавление документа
next up previous contents
Next: Работа с сигналами в Up: Сигналы Previous: Понятие о сигналах   Contents

Посылка сигналов с помощью raise() и kill()

Функция raise() имеет следующий вид:

#include <signal.h>

int raise(int sig);

С помощью функции raise() можно посылать программные сигналы типа sig в исполняемую программу. Если программа установила обработчик сигнала для указанного типа sig, эта процедура будет выполнена. Если никакой обработчик не установлен, будет выполнено стандартное действие (SIG_DFL) для данного типа сигнала. В примере ниже приведена программа, которая запрашивает ввод двух чисел для деления. Если делитель равен 0, программе посылается сигнал SIGFPE, чтобы завершить ее:

#include <signal.h>

int main()

{

  int a,b;

  printf("Число : ");

  scanf("%d",&a);

  printf("делится на : ");

  scanf("%d",&b);

  if(b==0)

    raise(SIGFPE);

  else

    printf("Результат = %d\n",a/b);

  return 0;

}

Для передачи сигнала некоторому процессу применяется функция kill(), синтаксис которой приведен ниже.

#include <sys/types.h>

#include <signal.h>

int kill(pid_t pid, int signalnumber);

Запись kill(getpid(), signalnumber) эквивалентна вызову
raise(signalnumber). После вызова kill() в записи таблиц целевого процесса устанавливается соответствующий сигналу бит. Кроме того, должны быть выполнены следующие условия:



2004-06-22

АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Подробнее о проведении акции вы можете прочитать на странице сайта.


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList