看板 LinuxDev 關於我們 聯絡資訊
※ 引述《roylee17 (把我id還我阿......)》之銘言: ※ 引述《KvsG (KvsG)》之銘言: : 大家好... 請問大家一個問題... : 因為我寫了一支程式... 需要定時做一些工作... : 但是這些工作有時會有例外情況... (當然這是我要抓的) : 偏偏發生了例外情況... 這程式不是就卡死在那裡, 不再接受下一個工作... : 就是直接 Segmentation Fault 了... 囧 : 在排除 Segmentation Fault 的情況下... 我想要解決卡死的問題... @@ : 可是找不到什麼方法來做 @@ 我找了 struct timeval 但是仍然沒有什麼頭緒... @@ : 請問有什麼方法嗎.. ?? 還是得用 thread ?? : 問得實在很沒頭沒腦... ^^" 謝謝大家看完 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> #include <setjmp.h> jmp_buf env_buf; void alarm_handler( int signo){ fprintf( stderr, "Time Out\n"); // abort(); longjmp( env_buf, 1); } int main(){ /* register time out handler */ signal( SIGALRM, alarm_handler); if( !setjmp( env_buf){ alarm(3); /* enable the timer */ do_something(); alarm(0); /* disable the timer */ } else{ fprintf( stderr, "continue...\n"); } return 0; } 更細的時間單位可以 man setitimer -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.203.139
KvsG:謝謝大大的指點!!! 有可能不要結束整支程式嗎?? 06/05 14:26
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.203.139
KvsG:<(_ _)> 謝謝謝大大的指點 orz 06/05 15:08