弗洛伊德認爲:要解決這些苦惱,當事人就要經過回憶並理解本身早期的童年經歷,來得到對潛意識衝突的頓悟。弗洛伊德的療法被稱爲「精神分析」 (psychoanalysis),在 20 世紀的很長一段時間被心理衛生從業者廣爲採用。 —— 《Change Your Thinking》c++
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);
簡單示例:spa
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 (表示使用系統默認的信號處理程序)。unix
信號 SIGSTOP、SIGKILL 沒法捕獲或忽略。指針
記錄如下兩點,但沒有驗證,不肯定是否表述正確:code
除了 signal,還有 sigaction 函數能夠設置信號處理函數,比 signal 要複雜些,後面接着再寫筆記。blog
學習資料: 《unix 環境高級編程》