我正在使用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);
};
答案 0 :(得分:3)
您不应该自己声明struct sigaction
。它在手册页中提供了您的信息,但它实际上是由<signal.h>
声明的。
结构中的第二行定义了一个函数指针(与第一行一样,但使用不同的类型)。