send

Синтаксис

void  send(union SIGNAL **sig, PROCESS to);

Описание

Посылает буфер сигнала указанному процессу и заменяет сигнал на NIL в указателе вызывающего процесса, чтоб не допустить повторное использование процесса.
Вызывающий процесс после вызова перестаёт владеть буфером.
(FIXME переадресация сигналов)
Если целевой процесс завершён, сигнал молча уничтожается, вызывающий процесс этого не узнает.

Параметры

  • sig - указатель на буфер сигнала
  • to - идентификатор процесса, которому будет послан сигнал.

Возвращаемое значение

Нет

Ограничения

Вызывающий процесс может достучаться до адресата в одном из следующих случаев:

  • вызывающий процесс - superuser, то есть номер его пользователя 0
  • вызывающий процесс и адресат имеют одинаковый номер пользователя
  • вызывающий процесс и адресат - части одного и того же блока

(FIXME переадресация сигналов)

Пример

#define MYPROCESS_DOSOMETHING 1
struct MYSIG
{                    
    SIGSELECT sig_no;
    char      data;
};
 
union SIGNAL
{
     SIGSELECT sig_no;
     struct MYSIG mysig;
};
 
...
 
union SIGNAL *sig;
 
sig = alloc(sizeof(struct MYSIG), MYPROCESS_DOSOMETHING);
sig->forth.data =’x’;
send(&sig,proc_);

См. также

You: Guest
You permissions: Read
elflib/functions/send.txt · Последние изменения: 30/03/2015 00:00 (внешнее изменение)
Total pages: 365
RSS on Mobilefree Wiki www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Valid XHTML 1.0
© 2005-2018 supertrubka.org