Использование и интерпретация Sigaction - PullRequest
1 голос
/ 30 ноября 2010

Я использую sigaction для сигнала и использую простую структуру для этого. Я на самом деле взял это со страницы руководства. Может кто-нибудь объяснить мне, что делает вторая строка в структуре? Также там есть ошибка:

error: expected declaration specifiers or '...' before 'siginfo_t'



#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <unistd.h>
#include <assert.h>
#include <getopt.h>

#include <signal.h>
#include <sys/time.h>

#define _POSIX_C_SOURCE 200112L
#define MAX_WORD 256

void parseFile (FILE * fp, FILE *sketcher);
void handle_timeout(int signal);


struct sigaction {
 void     (*sa_handler)(int);
    void     (*sa_sigaction)(int, siginfo_t *, void *);
    sigset_t   sa_mask;
    int      sa_flags;
    void     (*sa_restorer)(void);
};

1 Ответ

3 голосов
/ 30 ноября 2010

Вы не должны объявлять struct sigaction самостоятельно.Он предоставлен на странице руководства для вашей информации, но на самом деле он объявлен как <signal.h>.

Вторая строка в структуре определяет указатель на функцию (как и первая, но с другим типом).

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