一步一步学UC(三) - 文件和目录

stat fstat和lstat函数

#include <sys/stat.h>

int stat(const char* restrict pathname,struct stat *restrict buf);

stat函数返回路径上此文件有关的信息结构

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

在描述符上打开文件的有关信息

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

和stat相似,返回链接的 信息


文件信息结构

struct stat{

mode_t st_mode;文件类型

ino_t     st_ino; i节点号

dev_t st_dev; 设备号

dev_t st_rdev; 特殊文件设备号

nlink_t st_nlink; 链接数

uid_t st_uid; 用户ID

gid_t st_gid; 组ID

off_t st_size; 文件大小

time_t st_atime; 最后访问时间

time_t st_mtime; 最后修改时间

time_t st_ctime 最后状态改变时间

blksize_t st_blksize;IO块大小

blkcnt_t st_blocks; 磁盘块数

}

文件类型

文件类型信息包含在stat结构的st_mode成员中。

普通文件 S_ISREG

目录文件 S_ISDIR

块特殊文件 S_ISBLK

字符特殊文件 S_ISCHR

FIFO S_ISFIFO

套接字 S_ISSOCK

符号链接 S_ISLNK

设置用户ID和设置组ID

与进程相关的ID有6个或更多 

实际用户ID和实际组ID标示我们究竟是谁

有效用户ID和有效组ID决定我们的访问权限

设置用户ID和设置组ID在执行一个程序时包含有效用户ID和组ID的副本

access函数

按实际用户ID和实际组ID进行访问权限测试

#include <unistd.h>

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

mode:R_OK W_OK X_OK F_OK

umask函数

为进程设置文件模式创建屏蔽字,并返回以前的值

chmod和fchmod函数

改变现有文件的访问权限

chown fchown和 lchown函数

改变文件的用户ID和组ID

link unlink remove  rename函数

创建、删除一个现有的目录项

symlink和readlink函数

创建一个符号链接

utime函数

更改文件的访问和修改时间

mkdir和rmdir函数

创建目录和删除目录

读目录

DIR* opendir(const char* pahtname);

struct dirent* readdir(DIR *dp);

struct diren{

ino_t d_ino;

char d_name[NAME_MAX+1];

}


chdir和fchdir函数可以更改当前工作目录



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值