сигнал () тип возврата - PullRequest
0 голосов
/ 09 июня 2011

Я изучаю обработку сигнала, и у меня есть вопрос о возврате сигнала:

void (*sighandler_t)(int);

Я знаю, что это указатель на предыдущую функцию обработчика сигнала, но я не знаю, что означает параметр "(int)".

Большое спасибо!

Ответы [ 4 ]

4 голосов
/ 09 июня 2011

Параметр int для обработчика сигнала - это номер сигнала, вызвавшего вызов этого обработчика. Это полезно, если к одной и той же функции обработчика сигналов подключено более одного сигнала.

2 голосов
/ 09 июня 2011

(int) является частью типа;тип sighandler_t - это указатель на функцию, которая возвращает void и принимает int в качестве параметра.

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

Функция обработчика сигнала имеет подпись, которую вы разместили.Когда ваша программа получает сигнал, система вызывает ваш обработчик сигнала и отправляет ему сигнал для обработки в качестве параметра, чтобы вы могли иметь общий обработчик для нескольких типов сигналов, например.

0 голосов
/ 09 июня 2011

Это не совсем указатель на предыдущую функцию.Это объявление типа указателя на функцию.

Этот указатель будет работать для любой функции с возвращаемым типом void и параметром int.

Подробнее о том, как работает этот синтаксис, можно узнать здесь

http://www.cprogramming.com/tutorial/function-pointers.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...