弗洛伊德认为:要解决这些苦恼,当事人就要通过回忆并理解自己早期的童年经历,来获得对潜意识冲突的顿悟。弗洛伊德的疗法被称为“精神分析” (psychoanalysis),在 20 世纪的很长一段时间被心理卫生从业者广为采用。 —— 《Change Your Thinking》
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287
1 #include <signal.h>2 void (*signal(int signo, void (*func)(int)))(int);
为 signo 指定的信号设置信号处理程序。成功则返回指向之前信号处理程序的函数指针,出错则返回 SIG_ERR。
如果看不懂 signal 的函数声明,就要好好复习一下 c/c++ 的基础(函数指针)了。
将 signal 函数的声明简化一下:
1 typedef void SigFunc(int); //信号处理函数原型2 Sigfunc * signal(int signo, SigFunc * func);
简单示例:
1 void sig_handler(int signo) { 2 if (SIGUSR1 == signo) 3 PRintf(“received SIGUSR1.”); 4 else 5 printf(“received signal %d.”, signo); 6 } 7 8 int main() { 9 if (SIG_ERR == signal(SIGUSR1, sig_handler))10 printf(“can’t catch SIGUSR1”);11 12 for ( ; ; )13 pause();14 }
还可将信号处理函数设置为 SIG_IGN (表示忽略此信号) 或 SIG_DFL (表示使用系统默认的信号处理程序)。
信号 SIGSTOP、SIGKILL 无法捕获或忽略。
记录以下两点,但没有验证,不确定是否表述正确:
除了 signal,还有 sigaction 函数可以设置信号处理函数,比 signal 要复杂些,后面接着再写笔记。
学习资料: 《unix 环境高级编程》
新闻热点
疑难解答