文件属性及目录相关系统调用

stat()/fstat()/lstat()系统调用功能获取文件状态头文件函数原型);int fstat(int filedes, struct stat *buf););与stat()差别:为符号连接时,,lstat()返回连接自身状态返回值成功时返回0否则-1struct stat结构定义struct stat {mode_t st_mode; /*file type & mode*/ino_tst_ino;/*inode number (serial number)*/dev_t st_rdev; /*device number (file system)*/nlink_t st_nlink; /*link count*/uid_tst_uid;/*user ID of owner*/gid_tst_gid;/*group ID of owner*/off_tst_size; /*size of file, in bytes*/time_t st_atime; /*access*/time_t st_mtime; /*modification*/time_t st_ctime; /*status change*/longst_blksize;/*Optimal block size for I/O*/longst_blocks;/*number 512-byte blocks allocated*/};access()系统调用功能按实际用户ID和实际组ID测试文件存取权限头文件#include <unistd.h>函数原型int access(const char *pathname, int mode);返回值成功时返回0否则-1mode参数说明R_OKW_OKX_OKF_OKumask()系统调用功能为进程设置文件存取权限屏蔽字,并返回以前的值头文件#include <sys/types.h>#include <sys/stat.h>函数原型mode_t umask(mode_t mask);chmod()/fchmod()系统调用功能更改文件权限头文件#include <sys/types.h>#include <sys/stat.h>函数原型int chmod(const char *path, mode_t mode);int fchmod(int fildes, mode_t mode);返回值成功时返回0失败返回-1chown()/fchown()/lchown()系统调用功能变更文件宿主头文件#include <sys/types.h>#include <unistd.h>函数原型int chown(const char *path, uid_t owner, gid_t group);int fchown(int fd, uid_t owner, gid_t group);int lchown(const char *path, uid_t owner, gid_t group);若path为符号连接, lchown()改变连接本身的所有者或组,chown()则改变连接所指向文件的所有者或组返回值成功时返回0失败返回-1link()/unlink()系统调用功能创建/删除一个硬链接头文件#include <unistd.h>函数原型*newpath);int unlink(const char *pathname);删除一个文件的目录项并减少它的链接数返回值成功时返回0失败返回-1symlink()/readlink()系统调用功能创建/删除一个符号链接头文件#include <unistd.h>函数原型*newpath);返回值成功时返回0否则-*path, char *buf, size_t bufsiz);返回值成功时返回放置在buffer中的字符数否则-1目录处理相关系统调用创建/删除目录更改/获取目录, getcwd()读取目录信息mkdir()/rmdir()系统调用功能创建/删除一个空目录头文件#include <sys/stat.h>#include <sys/types.h>函数原型int mkdir(const char *pathname, mode_t mode);int rmdir(const char *pathname);返回值成功时返回0失败时返回-1chdir()/fchdir()系统调用功能更改工作目录头文件#include <unistd.h>函数原型int chdir(const char *path);int fchdir(int fd);返回值成功时返回0失败时返回-1说明当前工作目录是进程的属性,所以该函数只影响调用chdir的进程本身getcwd()系统调用功能获得当前工作目录的绝对路径头文件#include <unistd.h>函数原型char *getcwd(char *buf, size_t size);返回值成功时返回buf出错则为NULL读取目录信息数据结构DIR, struct dirent基本操作DIR目录流对象头文件 <dirent.h>定义形式typedef struct _dirstream DIR;struct dirent目录项头文件<dirent.h>定义ino_t d_ino;/* inode号*/char d_name[NAME_MAX + 1]; /* 文件名*/目录基本操作功能打开、关闭、读、定位头文件#include <sys/types.h>#include <dirent.h>函数原型DIR *opendir(const char *name);int closedir(DIR *dir);struct dirent *readdir(DIR *dir);off_t telldir(DIR *dir); //获取目录流读取位置void seekdir(DIR *dir, off_t offset);fopen()函数功能打开文件流头文件#include <stdio.h>函数原型FILE *fopen(*mode);mode参数说明“r”: 以读方式打开文本文件“w”: 以写方式创建一个文件,覆盖老文件“a”: 以追加方式打开文件“r+”: 以读写方式打开一个现存文件“w+”:以读写方式打开一个文件若不存在,将创建之若存在,将覆盖原文件“a+”: 以读及追加方式打开文件,若不存在,将创建之“b”:以二进制模式打开文件“t”:以文本模式打开文件

或者在河边放下一盏写着心愿的河灯,祝愿一切安好。

文件属性及目录相关系统调用

相关文章:

你感兴趣的文章:

标签云: