通過linux系統呼叫來完成這個操作,atexit( )
和on_exit( )
。
atexit( )
函式原型:
#include
int atexit (
void
(*function)
(void))
;
示例:
#include
#include
#include
#include
static
void my_handler (
void
)int
main()
執行結果:
on_exit( )
使用方法一樣。
函式原型:
#include
inton_exit
(void
(*function)
(int status,
void
*arg)
;
通過訊號終止程序時,上面註冊的函式執行於signal_handler( )
之後。
示例:
#include
#include
#include
#include
static
void signal_handler (
int signo)
else
if(signo == sigterm)
printf
("caught sigterm!\n");
else
exit
(exit_success);}
static
void my_handler (
void
)int
main()
if(signal (sigterm, signal_handler)
== sig_err)
if(signal (sigprof, sig_dfl)
== sig_err)
if(signal (sighup, sig_ign)
== sig_err)
for(;;
)pause()
;printf
("test atexit!\n");
return0;
}
執行結果(通過ctrl+c
和kill pid
方式終止程序)
終止程序的執行
問題 1 執行 sleep 600 命令 2 再開乙個終端,查出sleep程式的pid並殺死 3 執行多個xsnow程式並都放入後台 4 殺死所有xsnow程序 5 su切換為zhangsan使用者 6 再開乙個終端,強制踢出zhangsan使用者 方案殺死程序的命令一般有kill killall ...
LINUX 終止程序的執行
問題 1 執行 sleep 600 命令 2 再開乙個終端,查出sleep程式的pid並殺死 3 執行多個xsnow程式並都放入後台 4 殺死所有xsnow程序 5 su切換為zhangsan使用者 6 再開乙個終端,強制踢出zhangsan使用者 方案殺死程序的命令一般有kill killall ...
Linux 終止程序的執行
1 執行 sleep 600 命令 2 再開乙個終端,查出sleep程式的pid並殺死 3 執行多個xsnow程式並都放入後台 4 殺死所有xsnow程序 5 su切換為zhangsan使用者 6 再開乙個終端,強制踢出zhangsan使用者 方案 殺死程序的命令一般有kill killall pk...