文件操作

来源:互联网 发布:阿里域名备案需要什么 编辑:程序博客网 时间:2024/06/01 17:29

文件操作常用到的函数和需要注意的细节

stat函数

获取文件的属性(从inode结构体中获取)

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

参数:文件名,inode结构体指针(传出参数)

文件属性将通过传出参数返回给调用者

lstat函数

int lstat(const char * path,struct stat*buf)

获取文件属性,参数同stat

stat于lstat的区别在于穿透符号链接,stat会,lstat不会

特殊权限位:

包含三个二进制位。设置组id位,setGID;设置用户id位setID;粘住位sticky

access函数

测试指定文件是否存在/拥有某种权限

int access(count char * pahtname,int mode);

成功/具备该权限:0  失败/不具备-1

通常使用access函数来测试某个文件是否存在,参数2为 F_OK

chmod函数

修改文件的访问权限

int chmod(const char * path,mode_t mode);

成功:0 失败:-1

int fchmod(int fd,mode_t mode);

truncate函数

截断文件长度指定长度。常用来拓展文件大小,代替lseek。

int truncate(const char * path,off_t length);

成功:0 失败:-1

int ftruncate(int fd,off_t lenth);

link 函数

目录项游离于inode之外,是为了实现文件共享。linux允许多个目录项共享一个inode,即共享盘块(data)。不同文件名,在我们眼中理解成两个文件,但是在内核眼里是同一个文件。

link函数可以为已经存在的文件创建目录项(硬链接)

int link(const char * oldpath,const char * newpaht);成功0

mv 命令是修改了目录项,并不修改文件本身。

0 0
原创粉丝点击