boy*_*ang 4 c unix linux sigaction
我注意到它sigaction被定义为结构和函数(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html):
int sigaction(int, const struct sigaction *restrict,
struct sigaction *restrict);
Run Code Online (Sandbox Code Playgroud)
使用它的一个例子是:
struct sigaction sa;
/* Set up handler */
sa.sa_flags = SA_SIGINFO|SA_RESTART;
sa.sa_sigaction = timer_expiry;
/* Setup signal watchdog */
if (sigaction(SIG_WDOG, &sa, NULL) == -1) {
printf("ERROR: Failed to set wdog signal with %s",
strerror(errno));
}
Run Code Online (Sandbox Code Playgroud)
C有几个标识符的名称空间; 函数标识符和结构标记标识符位于不同的名称空间中.
(C11,6.2.3标识符的名称空间p1)"如果在翻译单元的任何一点可以看到特定标识符的多个声明,则语法上下文消除了引用不同实体的用法.因此,有单独的名称空间对于各种类别的标识符,如下:
标签名称(通过标签声明和使用的语法消除歧义);
关键字struct,union或enum的结构,联合和枚举的标记(通过遵循any32消除歧义);
结构或工会的成员; 每个结构或联合为其成员都有一个单独的名称空间(通过.或 - >运算符用于访问成员的表达式的类型消除歧义);
所有其他标识符,称为普通标识符(在普通声明符中声明或作为枚举常量)
.