文件操作接口五(其他常用):access,mkdir,rmdir, remove,getcmd,stat

文件操作接口五(其他常用):access,mkdir,rmdir, remove,getcmd,stat

1.access

1.原型
int access(const char *pathname, int mode)

2.参数
pathname:指定的文件的路径+文件名
参数mode:
F_OK 值为0,判断文件是否存在
X_OK 值为1,判断对文件是可执行权限
W_OK 值为2,判断对文件是否有写权限
R_OK 值为4,判断对文件是否有读权限

3.功能
access()会检查是否可以读/写某一已存在的文件

4.返回值
成功0,失败-1

2.mkdir

1.原型
mkdir(path,mode,recursive,context)

2.参数
1. path
必需。
规定要创建的目录的名称。

2. mode
• 可选。
• 规定权限。
• 默认是 0777(允许全局访问)。

mode方式: 可多个权限相或,如0755表示S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH
代表:该文件所有者拥有读,写和执行操作的权限,该文件用户组拥有可读、可执行的权限,其他用户拥有可读、可执行的权限。

• mode 参数由四个数字组成:
• 第一个数字通常是 0
• 第二个数字规定所有者的权限
• 第三个数字规定所有者所属的用户组的权限
• 第四个数字规定其他所有人的权限
• 可能的值(如需设置多个权限,请对下面的数字进行总计):
• 1 = 执行权限
• 2 = 写权限
• 4 = 读权限

3. recursive
可选
• 规定是否设置递归模式。(PHP 5 中新增的)

4. context
• 可选
• 规定文件句柄的环境。
• context 是一套可以修改流的行为的选项。(PHP 5 中新增的)

5.功能
mkdir()函数以mode方式创建一个以参数pathname命名的目录,mode定义新创建目录的权限。

6.返回值
如果成功该函数返回 TRUE,如果失败则返回 FALSE。

7.举例子

if(0 != mkdir(pcPath, S_IRWXU | S_IRWXU | S_IRWXU))
{
	…… ……//operate
}

S_IRWXU:
00700权限,代表该文件所有者拥有读,写和执行操作的权限
S_IRWXG:
00070权限,代表该文件用户组拥有读,写和执行操作的权限
S_IRWXO:
00007权限,代表其他用户拥有读,写和执行操作的权限

3.rmdir

1.原型
rmdir(dir,context)

2.功能
rmdir() 函数删除空的目录。**

3.参数
1. dir
• 必需。
• 规定要删除的目录。

  1. context
    • 可选。
    • 规定文件句柄的环境。
    • context 是一套可以修改流的行为的选项。
    • 返回值
    • 如果成功,该函数返回 TRUE。
    • 如果失败,则返回 FALSE。

4. remove

remove()函数用于删除指定的文件
原型如下:
int remove(char *filename);

5.getcmd

1.原型
char *getcwd(char *buf, size_t size)

2.参数
buf存储当前目录的缓冲区
size为buf的空间大小

3.功能
取得当前的工作目录,并存放到buf中
常用: getcwd(path,sizeof(path))

4.返回值
成功则返回当前工作目录,失败返回 FALSE

6.stat

include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
1.原型
int stat(const char *path, struct stat *buf)

2.参数
path文件路径(名)
struct stat 类型的结构体

struct stat
{
 	dev_t     st_dev;     /* ID of device containing file */文件使用的设备号
	ino_t     st_ino;     /* inode number */    索引节点号 
	mode_t    st_mode;    /* protection */  文件对应的模式,文件,目录等
	nlink_t   st_nlink;   /* number of hard links */    文件的硬连接数  
	uid_t     st_uid;     /* user ID of owner */    所有者用户识别号
	gid_t     st_gid;     /* group ID of owner */   组识别号  
	dev_t     st_rdev;    /* device ID (if special file) */ 设备文件的设备号
	off_t     st_size;    /* total size, in bytes */ 以字节为单位的文件容量   
	blksize_t st_blksize; /* blocksize for file system I/O */ 包含该文件的磁盘块的大小   
	blkcnt_t  st_blocks;  /* number of 512B blocks allocated */ 该文件所占的磁盘块  
	time_t    st_atime;   /* time of last access */ 最后一次访问该文件的时间   
	time_t    st_mtime;   /* time of last modification */ /最后一次修改该文件的时间   
	time_t    st_ctime;   /* time of last status change */ 最后一次改变该文件状态的时间   
};

3.功能
获取文件信息

4.返回值
成功返回0,失败返回-1

参考

https://blog.csdn.net/wangwenxc/article/details/17393657
https://www.yuque.com/docs/share/99a6e7fa-44c8-4d85-afe2-17a28d117ab0
https://blog.csdn.net/hfyutdg/article/details/87914687

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值