文件和目录属性

来源:互联网 发布:什么是php探针 编辑:程序博客网 时间:2024/05/22 15:42

文件和目录

文件属性的获取

返回filename有关的信息的结构体,然后放到buf中。

int stat(const char* filename, struct stat *buf);

将已经打开的文件(fd所描述的文件)的信息保存到buf中。

int fstat(int fd, struct stat *buf);

类似于stat,只是当filename是一个符号链接,类似与快捷方式时,buf中保存的是该符号链接的有关信息,而不是所链接的文件的信息。
其中,struct stat结构体保存着文件相关的信息,包括结点号, 用户id,
文件大小st_size等等。

int lstat(const char* filename, struct stat *buf);

文件类型的检测

利用宏来确定文件类型,一下这些宏都是struct stat结构体中st_mode的成员。

S_ISREG(m)  // 判断m是不是一个regular fileS_ISDIR     // 文件夹...

目录操作

#include <sys/types.h>#include <dirent.h>//改变工作路径,成功返回0,失败返回-1int chdir(const char *path); //改变目录到pathint fchdir(int fd);//区别在于,fd是目录的文件描述符而已//打开目录name,成功返回目录指针DIR *opendir(const char *name);DIR *fdopendir(int fd);//访问文件夹dirname/,并把文件夹下的内容保存到struct dirent结构体中struct dirent *readdir(DIR* dirname);struct dirent {     ino_t d_ino;   /* inode number */     off_t d_off;   /* not an offset; see NOTES */     unsigned short d_reclen;  /* length of this record */     unsigned char  d_type;   /* type of file; not supported by all filesystem types */     char d_name[256]; /* filename */};
0 0