Linux——文件操作

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 判断对文件是否有读写权限
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容