Архитектура операционной системы UNIX


         

Функция signal дает текущему процессу


signal #include <signal.h> signal(sig,function) int sig; void (*func)();

Функция signal дает текущему процессу возможность управлять обработкой сигналов. Параметр sig может принимать следующие значения:

SIGHUP "зависание"

SIGINT прерывание

SIGQUIT прекращение работы

SIGILL запрещенная команда

SIGTRAP внутреннее прерывание, связанное с трассировкой

SIGIOT инструкция IOT

SIGEMT инструкция EMT

SIGFPE особая ситуация при работе с числами с плавающей запятой

SIGKILL удаление из системы

SIGBUS ошибка в шине

SIGSEGV нарушение сегментации

SIGSYS недопустимый аргумент в вызове системной функции

SIGPIPE запись в канал при отсутствии считывающих процессов

SIGALRM сигнал тревоги

SIGTERM завершение программы

SIGUSR1 сигнал, определяемый пользователем

SIGUSR2 второй сигнал, определяемый пользователем

SIGCLD гибель потомка

SIGPWR отказ питания

Параметр function интерпретируется следующим образом:

SIG_DFL действие по умолчанию. Означает завершение процесса в случае поступления любых сигналов, за исключением SIGPWR и SIGCLD. Если сигнал имеет тип SIGQUIT, SIGILL, SIGTRAP, SIGIOT, SIGEMT, SIGFPE, SIGBUS, SIGSEGV или SIGSYS, создается файл "core", содержащий дамп образа процесса в памяти

SIG_IGN игнорировать поступление сигнала функция адрес процедуры в пространстве процесса. По возвращении в режим задачи производится обращение к указанной функции с передачей ей номера сигнала в качестве аргумента. Если сигнал имеет тип, отличный от SIGILL, SIGTRAP и SIGPWR, ядро автоматически переустанавливает имя программы обработки сигнала в SIG_DFL. Сигналы типа SIGKILL процессом не обрабатываются

stat stat(filename,statbuf) char *filename; struct stat *statbuf; fstat(fd,statbuf) int fd; struct stat *statbuf;

Функция stat возвращает информацию о статусе (состоянии) указанного файла. Функция fstat выполняет то же самое в отношении открытого файла, имеющего дескриптор fd. Структура statbuf определена следующим образом: struct stat { dev_t st_dev; /* номер устройства, на котором на- ходится файл */ ino_t st_ino; /* номер индекса */ ushort st_mode; /* тип файла (см. mknod) и права доступа к нему (см. chmod) */ short st_nlink; /* число связей, указывающих на файл */ ushort st_uid; /* код идентификации владельца файла */ ushort st_gid; /* код идентификации группы */ dev_t st_rdev; /* старший и младший номера устройства */ off_t st_size; /* размер в байтах */ time_t st_atime; /* время последнего обращения */ time_t st_mtime; /* время последнего внесения изменений */ time_t st_ctime; /* время последнего изменения статуса */ };


Содержание  Назад  Вперед