C语言目录和文件操作扩展

这篇博客详细介绍了C语言中进行文件和目录操作的相关函数,包括access、stat、utime、rename和remove。通过实例演示了这些函数的使用方法和运行效果,帮助读者理解如何在Linux环境下进行文件权限判断、文件属性获取、文件时间修改、文件重命名和文件删除等操作。
摘要由CSDN通过智能技术生成

目录

前言

一、access库函数

二、stat库函数

stat结构体

 stat库函数

举个例子 

运行效果

三、utime库函数

举个例子 

运行效果

再举个例子 

运行效果

四、rename库函数

举个例子 

运行效果 

五、remove库函数

举个例子

运行效果


前言

在之前的章节中有详细讲解目录和文件操作,本章节扩展一些目录和文件操作的更多知识

一、access库函数

access 函数用于判断当前操作系统用户对文件或目录的存取权限

使用函数需要包含头文件:

#include <unistd.h>

函数声明:

int access(const char *pathname, int mode);

参数说明:

  1. pathname 文件名或目录名,可以是当前目录的文件或目录,也可以列出全路径
  2. mode 需要判断的存取权限

在头文件unistd.h中的预定义如下:

#define R_OK 4     // R_OK 只判断是否有读权限
#define W_OK 2    // W_OK 只判断是否有写权限
#define X_OK 1     // X_OK 判断是否有执行权限
#define F_OK 0     // F_OK 只判断是否存在

返回值:

  1. 当 pathname 满足 mode 的条件时候返回0,不满足返回-1
  2. access 函数主要用于判断文件或目录是否是存在

二、stat库函数

stat结构体

struct stat 结构体用于存放文件和目录的状态信息

struct stat
{
  dev_t st_dev;   // device 文件的设备编号
  ino_t st_ino;   // inode 文件的i-node
  mode_t st_mode;   // protection 文件的类型和存取的权限
  nlink_t st_nlink;   // number of hard links 连到该文件的硬连接数目, 刚建立的文件值为1.
  uid_t st_uid;   // user ID of owner 文件所有者的用户识别码
  gid_t st_gid;   // group ID of owner 文件所有者的组识别码
  dev_t st_rdev;  // device type 若此文件为设备文件, 则为其设备编号
  off_t st_size;  // total size, in bytes 文件大小, 以字节计算
  unsigned long st_blksize;  // blocksize for filesystem I/O 文件系统的I/O 缓冲区大小.
  unsigned long st_blocks;  // number of blocks allocated 占用文件区块的个数, 每一区块大小为512 个字节.
  time_t st_atime;  // time of lastaccess 文件最近一次被存取或被执行的时间, 一般只有在用mknod、 utime、read、write 与tructate 时改变.
  time_t st_mtime;  // time of last modification 文件最后一次被修改的时间, 一般只有在用mknod、 utime 和write 时才会改变
  time_t st_ctime;  // time of last change i-node 最近一次被更改的时间, 此参数会在文件所有者、组、 权限被更改时更新
};
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易点点心动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值