UNIX环境高级编程之第4章:文件和目录-习题

本文详细介绍了在文件操作中使用stat与lstat的区别、umask的作用、文件权限的划分与修改方法、创建文件与复制文件时的权限变化、文件长度特性、使用creat与open函数的操作细节以及du命令的应用,同时解释了核心概念如tempfile的生命周期、ulink对文件状态的影响,以及在实际应用中如何灵活运用这些知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.1 stat函数是跟随符号链接的,所以用stat替换lstat不会显示符号链接的信息

4.2 在一个文件夹下先再shell中输入umask



shell进程再进行创建文件的操作,其权限抖都会被屏蔽

4.3 文件权限分别为用户权限,组权限,其他权限


更改权限也可以这样写chmod u+r test.c 把赋给test.c文件的用户读权限

4.4 用creat创建已有的文件是,该文件权限不会变,但是文件会被截断(清空)

4.5 对于普通文件,其文件长度可以为0,再开始读这种文件时,将得到文件结束(end-of-file)提示。

对于目录文件长度通常是一个数因为至少包括.和..。

对于符号链接也不可能为空,符号链接为一个文件路径,至少有一个字符

4.6 


#include <apue.h>
#include <fcntl.h>
int main(int argc, char *argv[]){
	int n;
	char buf[1];
	int fdr = open(argv[1],O_RDONLY);
	int fdw = creat(argv[2],S_IRUSR|S_IWUSR);
	while((n = read(fdr, buf, 1))>0){
		if(buf[0]!='\0' && write(fdw, buf, n)!=n)
			err_sys("write error");
	}
	if(n<0)
		err_sys("read error");
}
复制包含空洞的文件,但不将字节0写到输出文件中去
4.7  

du命令可以报告该文件所使用的磁盘空间总量,这里cp1.c的磁盘总量是4个512字节块即2048个字节(可能是最少就是四个因为2048已经远大于622了)

当创建一个新的core文件时,内核对权限有一个默认的设置

4.8 只有当unlink函数返回的时候才会释放tempfile的目录项,本例只是使用df查看文件系统中实际可用的空间

4.9 使用ulink会更改文件修改时间,如果被删除的链接不是该文件的最后一个链接,则不会删除文件,此时文件的状态更改时间被更新。如果被删除的链接是文件的最后一个链接,则该文件就会被物理删除,此时更新文件状态时间就没有意义了




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码随想录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值