Re: [問題] 請問如何計時, 時間到了取消 Function ??

看板LinuxDev作者 (把我id還我阿......)時間18年前 (2007/06/05 15:02), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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

06/05 14:26,
謝謝大大的指點!!! 有可能不要結束整支程式嗎??
06/05 14:26
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.203.139

06/05 15:08, , 1F
<(_ _)> 謝謝謝大大的指點 orz
06/05 15:08, 1F
文章代碼(AID): #16PGfrDE (LinuxDev)
文章代碼(AID): #16PGfrDE (LinuxDev)