一.atexit函数
1.函数原型:int atexit(void(*fundition)(void))(此函数的返回值为一个返回值为void*,参数为void的函数指针)
2.作用:在函数结束的时候进行一些回收。(注册终止函数)
3.注意::exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,则也会被调用多次。
4.头文件:#include<stdlib.h>
二.进程终止的方法
有8种方式使进程终止,其中前5种为正常终止,它们是
1:从 main 返回
2:调用 exit
3:调用 _exit 或 _Exit
4:最后一个线程从其启动例程返回
5:最后一个线程调用pthread_exit
异常终止有3种,它们是
6:调用 abort
7:接到一个信号并终止
8:最后一个线程对取消请求做出响应
三.关于suid,sgid和粘滞位的详解
SUID | SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有超级用户的特权了。这时该位将变成一个安全漏洞,因此不要轻易设置该位。 |
SGID | 与上面的内容类似。文件运行时,运行者将具有所属组的特权。 |
sticky-bit | sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源。因此设置该位,不如把程序写好。
|