[問題] 利用SIGSEGV來重啟原本程式
請教各位先進~
我想用SIGSEGV來重啟原來的程式(有點像迴圈)
但第二次的Segmentation fault無法觸發
請教要怎麼修改或是有其他方式嗎?
感謝~
void sighandler (int signal_number)
{
signal(SIGTERM, SIG_IGN);
if (fork() == 0)
{
printf("run app again;\n");
system("./testapp");
exit(EXIT_SUCCESS);
}
exit(EXIT_SUCCESS);
}
int main(int argc, char *argv[])
{
printf("run app start!! %d\n", getpid());
struct sigaction sa;
memset (&sa, 0, sizeof (sa));
sa.sa_handler = &sighandler;
sigaction (SIGSEGV, &sa, NULL);
sleep(3);
*(volatile unsigned char *)0;
return 0;
}
--
你是為了旅行而攝影 還是為了攝影而旅行
http://blog.dcview.com/awaysu
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.231.88
※ 編輯: awaysu 來自: 114.32.231.88 (08/04 17:25)
→
08/08 11:14, , 1F
08/08 11:14, 1F
→
08/08 13:03, , 2F
08/08 13:03, 2F
→
08/08 13:04, , 3F
08/08 13:04, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章