关于atexit,Linux中的t权限,Linux中的FILE结构体
来源:互联网 发布:maya破解软件下载 编辑:程序博客网 时间:2024/05/17 03:05
关于“atexit函数”,“Linux中的t权限”,“Linux中的FILE结构体”的介绍
一、关于atexit函数
atexit函数包含在头文件:#include<stdlib.h>中 ,功 能: 注册终止函数(即main执行结束后调用的函数) ,用 法: int atexit(void (*func)(void)),atexit()函数来注册程序正常终止时要被调用的函数,在一个程序中最多可以用atexit()注册32个处理函数,这些处理函数的调用顺序与其注册的顺序相反,也即最先注册的最后调用,最后注册的最先调用。
如下所示:
由上述例子可知,最后注册的fun3()函数先结束调用,而最先注册的fun1()函数最后结束调用,所以印证了atexit注册的函数顺序与调用顺序相反。由于atexit是在进程退出时调用函数的,所以main函数里的printf先输出了 fun has finished。
二、Linux中的t权限
t:Sticky Bit,简称为SBIT权限,只针对目录有效。
t :设置粘着位,一个文件可读写的用户并一定想让他有删除此文件的权限,如果文件设置了t权限则只用属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。
当用户对此目录具有 w, x 权限,亦具有写入的权限时当用户在该目录下创建文件或目录时,仅有自己与 root用户才有权限删除该文件或目录。
如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件。
struct file结构体其原型是:
struct file {
/*
* fu_list becomes invalid after file_free is called and queued via
* fu_rcuhead for RCU freeing
*/
union {
struct list_head fu_list;
struct rcu_head fu_rcuhead;
} f_u;
struct path f_path;
#define f_dentry f_path.dentry
#define f_vfsmnt f_path.mnt
const struct file_operations *f_op;
atomic_t f_count;
unsigned int f_flags;
mode_t f_mode;
loff_t f_pos;
struct fown_struct f_owner;
unsigned int f_uid, f_gid;
struct file_ra_state f_ra;
unsigned long f_version;
#ifdef CONFIG_SECURITY
void *f_security;
#endif
/* needed for tty driver, and maybe others */
void *private_data;
#ifdef CONFIG_EPOLL
/* Used by fs/eventpoll.c to link all the hooks to this file */
struct list_head f_ep_links;
spinlock_t f_ep_lock;
#endif /* #ifdef CONFIG_EPOLL */
struct address_space *f_mapping;
};
文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的struct file。
- 关于atexit,Linux中的t权限,Linux中的FILE结构体
- Linux中的atexit()函数,t 的权限, file结构体
- atexit(),Linux中的粘滞位和FILE结构体
- linux系统进程终止atexit函数 特殊权限s/t File结构体的信息内容
- Linux中的atexit函数
- linux中的atexit函数
- linux中的atexit
- Linux中的file_struct、t命令以及atexit函数有关知识
- atexit函数、t 权限位以及FILE结构
- Linux中的file结构体解析
- atexit函数&&t(粘滞位)用途及测试&&FILE结构体
- linux中的特殊权限s\t
- Linux中的s、t、i、a权限
- Linux中的t权限位详解
- 关于linux系统中的权限
- Linux驱动程序中的file,inode,file_operations三大结构体
- Linux驱动程序中的file,inode,file_operations三大结构体
- Linux驱动程序中的file,inode,file_operations三大结构体
- Android Activity 界面
- java中的getAttribute和getParameter
- 按之字形顺序打印二叉树
- matlab中使用CUDA kernel GPU加速
- Mybatis极其(最)简(好)单(用)的一个分页插件
- 关于atexit,Linux中的t权限,Linux中的FILE结构体
- “==“与“equals”区别
- Android Studio实用插件集合
- Ny17单调递增最长子序列
- CentOS7安装git
- Linux ./configure --prefix命令
- 【MyBatis】查询缓存(一级缓存和二级缓存)
- CCPC 2016 杭州站 小记 [铁++ → 铁×1]
- 家庭房产(并查集)