glibc源码分析之chown系列函数
来源:互联网 发布:时间浪人网络大电影 编辑:程序博客网 时间:2024/05/18 14:23
glibc中关于chown的函数有3个,它们分别是chown,fchown,lchown。它们都是系统调用的封装函数。
关于chown的系统调用有6个,它们分别是lchown(16),fchown(95),chown(182),lchown32(198),fchown32(207),chown32(212)。它们都是用于改变文件的用户ID和组用户ID。chown系列系统调用只能将用户ID和组用户ID改为16位整数。chown32系列系统调用则能将用户ID和组用户ID改为32位整数。
chown系列函数是使用脚本生成封装函数的。
生成的脚本如下:
#define SYSCALL_NAME chown32#define SYSCALL_NARGS 3#define SYSCALL_SYMBOL __chown#define SYSCALL_CANCELLABLE 0#define SYSCALL_NOERRNO 0#define SYSCALL_ERRVAL 0#include <syscall-template.S>#include <shlib-compat.h>#if IS_IN (libc)versioned_symbol (libc, __chown, chown, GLIBC_2_1)#elsestrong_alias (__chown, chown)#endif
chown函数调用了chown32系统调用。
#define SYSCALL_NAME fchown32#define SYSCALL_NARGS 3#define SYSCALL_SYMBOL __fchown#define SYSCALL_CANCELLABLE 0#define SYSCALL_NOERRNO 0#define SYSCALL_ERRVAL 0#include <syscall-template.S>weak_alias (__fchown, fchown)hidden_weak (fchown)
fchown函数调用了fchown32系统调用。
#define SYSCALL_NAME lchown32#define SYSCALL_NARGS 3#define SYSCALL_SYMBOL __lchown#define SYSCALL_CANCELLABLE 0#define SYSCALL_NOERRNO 0#define SYSCALL_ERRVAL 0#include <syscall-template.S>#include <shlib-compat.h>#if IS_IN (libc)versioned_symbol (libc, __lchown, lchown, GLIBC_2_0)#elsestrong_alias (__lchown, lchown)#endif#if defined SHARED && IS_IN (libc)strong_alias (__lchown, __lchown_1)compat_symbol (libc, __lchown_1, chown, GLIBC_2_0)#endif
lchown函数调用了了lchown32系统调用。
阅读全文
0 0
- glibc源码分析之chown系列函数
- glibc源码分析之stat系列函数
- glibc源码分析之stat64系列函数
- glibc源码分析之chmod系列函数
- glibc源码分析之truncate系列函数
- glibc源码分析之utime系列函数
- glibc源码分析之statfs系列函数
- glibc源码分析之access函数
- glibc源码分析之rename函数
- glibc函数exit源码分析
- glibc源码分析之普通文件读写
- glibc源码分析之getpriority,setpriority,nice
- glibc源码分析之用户管理
- glibc 系列之strlen()函数
- [glibc源码分析] bzero
- strlen glibc 源码分析
- glibc--memcpy源码分析
- glibc--strcpy源码分析
- Kotlin方便快捷的IO操作
- 高吞吐低延迟Java应用的垃圾回收优化
- zoj 3778 Talented Chef
- MySQL表分区使用详解
- 1057: 素数判定
- glibc源码分析之chown系列函数
- hdu6122 数学
- 【Selenium】11异常
- 希尔排序(Shell Sort)
- Spring Bean加载过程
- 51Nod 1298:圆与三角形(计算几何)
- 动态规划:word-break
- 在 request 之间共享 SecurityContext
- lower_bound与upper_bound