char *getcwd(
char *buffer,
int maxlen
);
获取当前工作目录,将当前目录的绝对路径复制到buffer中,maxlen为buffer的空间大小。
include <sys/stat.h>
include <unistd.h>
int stat(
const char *file,//文件名
struct stat *buf//保存file信息的结构体
);
struct stat{
dev_t st_dev;//文件的设备编号
ino_t st_ino;//节点
mode_t st_mode;//文件类型的存储权限
nlink_t st_nlink;//链接到该文件的硬链接数目,刚建立的文件为1
uid_t st_uid;//用户ID
gid_t st_gid;//组ID
dev_t st_rdev;//(设备类型)若此文件为设备文件,则为其设备编号
off_t st_size;//文件字节数
unsigend long st_blksize;//块大小(文件系统的IO缓存区大小)
unsigend long st_blocks;//块数
time_t st_atime;//最后一次访问时间
time_t st_mtime;//最后一次修改时间
time_t st_ctime;//最后一次改变时间
};
函数说明:通过文件名获取文件信息,并保存在buf指向的结构体中
执行成功返回0,失败返回-1
错误代码 | 含义 |
---|---|
ENOENT | filename指定的文件不存在 |
ENOTDIR | 路径中的目录存在,但非真正的目录 |
ELOOP | 准备打开的文件有过多的符号链接问题,符号链接上限为16 |
EFALUT | buf为无效指针 |
EACCESS | 存取文件时被拒绝 |
ENOMEM | 核心内存不足 |
ENAMETOOLONG | filename的路径名称太长 |
参考:https://www.cnblogs.com/hnrainll/archive/2011/05/11/2043361.html
include <unistd.h>
int access(
const char *pathname; //要测试的文件,路径+文件名
int mode //指定要测试哪种权限
);
//测试文件权限
mode的值 | 含义 |
---|---|
F_OK 或0 | 判断文件是否存在 |
R_OK 或4 | 判断对文件是否有读权限 |
W_OK或2 | 判断对文件是否有写权限 |
X_OK或1 | 判断对文件是否有读写权限 |