Sigaction的使用和解释

时间:2010-11-30 03:39:21

标签: c pointers casting struct

我正在使用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 个答案:

答案 0 :(得分:3)

您不应该自己声明struct sigaction。它在手册页中提供了您的信息,但它实际上是由<signal.h>声明的。

结构中的第二行定义了一个函数指针(与第一行一样,但使用不同的类型)。