文件与目录的属性
文件系统概述
Linux系统采用虚拟文件系统(VFS)的技术,支持多种文件系统,可以与更多的其它操作系统很好的并存。一个完整的文件系统操作主要由文件属性、文件系统的属性以及目录操作、文件操作等构成。
基本类型:Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。Linux系统中常见的文件类型有普通文件、目录、字符设备文件、块设备文件、符号链接文件等。
Linux系统针对属性结构体提供了相应的属性操作系统调用方法,用于在实际应用程序中根据处理需要获取、修改相应操作文件的属性。系统调用文件属性操作主要包含三个函数,系统中方法原型如下。#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char* file_name,struct stat*buf);
int fstat(int filedes,struct stat *buf);
int lstat(const char file_name,struct statbuf);
上述三个系统调用函数有一个共同点即离不开文件属性结构体的定义,通常应用程序中需要在外部定义文件属性结构体,然后作为参数将其对象指针传入进去,内部通过传入指定的文件名或者文件描述符将该文件的属性取到对应的结构体中,此时获取属性的结构体即可以在外部使用。函数stat主要根据指定需要获取属性的文件名file_name参数,从而获取该文件对应的属性。fstat是根据文件打开操作返回的文件描述符来操作获取对应文件属性,lstat函数主要用于根据连接文件名获取到对应的文件属性结构信息。另外三个系统调用成功处理返回值为0,否则返回-1,相应标准错误存放在errno中。
宏常量符号定义:分别表示文件属性中不同的类别信息。
针对文件类型:
针对文件属性中访问权限:
系统目录操作
//目录文件读取
//目录文件关闭
//目录文件删除
//目录文件获取
linux I/O操作