当前位置: 技术问答>linux和unix
apue书的的信号函数,看不懂
来源: 互联网 发布时间:2015-12-01
本文导语: 小弟在看apue信号这一章时,对signal函数的定义不是很明白: void (*signal (int signo, void(*func)(int))) (int); 如果去掉后面的(int),很好理解,指向函数的指针,一个参数是int signo,一个参数为 void (*func)(int).返回的...
小弟在看apue信号这一章时,对signal函数的定义不是很明白:
void (*signal (int signo, void(*func)(int))) (int);
如果去掉后面的(int),很好理解,指向函数的指针,一个参数是int signo,一个参数为 void (*func)(int).返回的是一个空指针.那最后的(int)到底是什么呀?参数?
还有一个问题,总结一下小弟这些天来看apue这本书的感受,在细节问题上我是清楚一些了,但总感觉还是很难理解这本书里面的思想.效果不是很明显,不知各位觉得看apue这本书怎样才能够算是看懂了?呵呵,对于我们搞嵌入式的来说,哪些东西是这本书的精髓
void (*signal (int signo, void(*func)(int))) (int);
如果去掉后面的(int),很好理解,指向函数的指针,一个参数是int signo,一个参数为 void (*func)(int).返回的是一个空指针.那最后的(int)到底是什么呀?参数?
还有一个问题,总结一下小弟这些天来看apue这本书的感受,在细节问题上我是清楚一些了,但总感觉还是很难理解这本书里面的思想.效果不是很明显,不知各位觉得看apue这本书怎样才能够算是看懂了?呵呵,对于我们搞嵌入式的来说,哪些东西是这本书的精髓
|
你看变成这样能理解吗?
typedef void (*sig_t) (int);
sig_t signal(int sig, sig_t func);
typedef void (*sig_t) (int);
sig_t signal(int sig, sig_t func);
|
这是对signal的函数声明,(int signo, void(*func)(int))是signal函数的参数,而signal函数返回的是一个指向参数为int型返回为void型的函数的指针
|
引用:
typedef void (*sig_t) (int);
sig_t signal(int sig, sig_t func);
第二行是个函数,函数名是signal,该函数的参数是(int sig, sig_t func),该函数的返回值是sig_t
typedef void (*sig_t) (int);
sig_t signal(int sig, sig_t func);
第二行是个函数,函数名是signal,该函数的参数是(int sig, sig_t func),该函数的返回值是sig_t