- 博客(4)
- 资源 (16)
- 收藏
- 关注
原创 __cdecl调用 C语言变参
__cdecl调用 在C语言中,函数调用支持不定参数,例如printf函数,可以不知道参数的个数,eg: void err_info(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } 这是如何实现的呢?如何支持变参的呢? 下面简要介绍下__cdecl调用方式,当然还有很多其他的调用方式,不过目前用不到 函数调用需要
2011-01-19 09:52:00 2322
原创 linux sticky bit 目录权限 rwt权限
今天看到有个目录的权限是rwxrwxrwt 很惊讶这个t是什么,怎么不是x或者-呢?搜了下发现: 这个t代表是所谓的sticky bit。 sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除
2011-01-16 12:53:00 10004 1
原创 linux下进程ID linux下set user id和set group id总结 linux下进程的各个ID总结 user ID in process APUE 第四章
linux中每个进程有六个或者更多的ID与其关联: real user id一般是从passwd文件中获取的,一般是不会发生改变的,当然也可以改变。可以理解为启动该进程的用户,即哪个用户启动了该进程,那么该进程的real user id就是该用户的id effective user id决定了进程访问文件的权限,一般情况下是与real user id是相同的,但可以改变 saved set-user-id 当该程序被执行时,save set-user-i
2011-01-15 17:16:00 9417
原创 APUE 第三章 文件I/O 文件的打开、读写、设置等
本章介绍了UNIX系统中文件操作的函数,主要包括open、read、write、lseek、close等。这些函数被称为unbuffered I/O,unbuffered意味着每次调用read、write都会调用一个系统调用,这些函数不是ISO C的组成部分,但是是POSIX的组成部分。 本章的所有内容基本可以用这样一个图来描述,理解了这个图,基本就理解了本章的内容。 从上图可以看出在整个关系链中,出现了进程、文件描述符(fd)、文件表、进程表、v-node表等。 系统维护了一张进程表,其中的每一
2011-01-15 10:49:00 1481
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人