c 学习记录 一

本文介绍了C语言中关于文件和目录的操作,包括ftruncate改变文件大小、access判断文件权限、fstat获取文件状态、stat/fstat/lstat获取文件属性、ftw遍历目录树以及get_current_dir_name和getcwd/getwd获取当前工作目录的方法和注意事项。
摘要由CSDN通过智能技术生成

1.  ftruncate: 改变文件大小

头文件: #include<unistd.h>

函数定义: intftruncate(int fd , off_t length);

函数说明: ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件大小比参数length大,则超过的部分会被删去。

返回值 :执行成功则返回0,失败返回-1,错误原因存于errno。

错误:

  EBADF 参数fd文件描述词为无效的或该文件已关闭。

  EINVAL 参数fd 为一socket 并非文件,或是该文件并非以写入模式打开。

2.  access: 判断是否有存取文件的权限
头文件:
unistd.h
函数定义: int access(const char *pathname, int mode);
函数说明: access()检查是否可以读/写某一已存在的文件。 参数mode有几种情况组合, R_OK, W_OK, X_OK和F_OK. R_OK, W_OK与X_OK用来检查文件是否具有读取, 写入和执行的权限。 F_OK则是用来判断该文件是否存在。由于access()只作权限的核查,并不理会文件形态或文件内容,因此,如果一目录表示为"可写入", 表示可以在该目录中建立新文件等操作, 而非意味此目录可以被当做文件处理。若所有欲查核的权限都通过了检查则返回0值,,表示成功,只要有一权限被禁止则返回-1。

错误代码:
   EACCESS      参数pathname所指定的文件不符合所要求测试的权限
   EROFS        欲测试写入权限的文件存在于只读文件系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值