2011-04-29 91 views
1

我很难理解sigaction()的工作方式。有人可以向我解释'sigaction'的工作原理吗?

<signal.h>,sigaction的被定义为

int sigaction(int sig, const struct sigaction *act, struct sigaction *oact) 

sigaction也在bits/sigaction.h定义为一个结构。我很困惑,C中的结构可以被调用吗?

有人可以给我一个简要的解释吗?

回答

5

该功能被称为sigaction,该结构被称为struct sigaction。功能和结构的C.不同的命名空间存在,它类似于你可以做到这一点的方式:

#include <stdio.h> 

struct x { 
     int x; 
}; 

static int 
x(struct x *x) { 
     return x->x; 
} 

int 
main(void) { 
     struct x y; 
     /* But not "struct x x" as we want to call the "x" function below. */ 

     y.x = 1; 
     printf("%d\n", x(&y)); 
     return 0; 
} 

,编译器可以理清哪些x是由不同的命名空间。但是这个例子太过分了,如果你在现实生活中做了这样的事情,会让你看起来很脏。

+0

非常感谢您的澄清,我还是C的新手。 – will 2011-04-29 04:36:44

相关问题