标签:
#include<sys/stat.h> int stat (const char* restrict pathname, struct stat *restrict buf); int fstat (int filedes, struct stat * buf); int lstat (const char* restrict pathname, struct stat *restrict buf);
成功返回0,失败返回-1
stat返回pathname上指定的文件的信息结构,fstat返回文件描述符指定文件的信息结构,lstat返回符号连接文件的信息结构,而不是符号连接指向的文件的信息结构
#include<stdio.h> #include<sys/stat.h> int main(int argc, char* argv[]) { char* ptr; int i; struct stat buf; for(i=1;i<argc;i++) { printf("%s:",argv[i]); if(( lstat(argv[i], &buf))<0) { printf("error:lstat"); continue; } if(S_ISREG(buf.st_mode)) ptr = "regular"; else if(S_ISDIR(buf.st_mode)) ptr = "directory"; else if (S_ISCHR(buf.st_mode)) ptr = "character special"; else if(S_ISBLK(buf.st_mode)) ptr = "block special"; else if(S_ISFIFO(buf.st_mode)) ptr = "fifo"; else if(S_ISLNK(buf.st_mode)) ptr = "link"; else if(S_ISSOCK(buf.st_mode)) ptr = "socket"; printf("%s\n",ptr); } return 0; }
文件的所有者由st_uid标识,组所有者由st_gid标识
#include<unistd.h> int access (const char* pathname ,int mode);
成功返回0,失败返回-1
mode的取值
R_OK, W_OK, X_OK, F_OK(测试文件是否存在)
#include<sys/stat.h> int chmod(const char* pathname, mode_t mode); int fchmode(int filedes, mode_t mode)
成功返回0,失败返回-1
实例:
chmode("bar", S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
为bar增加用户的读写权限,和组及其他的读权限
当这一位被设置了,该程序第一次被执行并结束时,程序正文部分仍然保存在交换区,使得下次执行程序能较快装入内存区,因为交换区占据连续磁盘空间,而一般的数据往往随机存放
S_ISVTX = SaVed TeXt
#include<unistd.h> int chown(const char * pathname, uid_t owner, gid_t group) int fchown(int filedes, uid_t owner, gid_t group) int lchown(const char* pathname, uid_t owner, gid_t group)
标签:
原文地址:http://www.cnblogs.com/zhangfann/p/4350809.html