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复制包括空洞的文件。但不将字节0写到输出文件里去 4.7#include 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");}
du命令能够报告该文件所使用的磁盘空间总量。这里cp1.c的磁盘总量是4个512字节块即2048个字节(可能是最少就是四个由于2048已经远大于622了)
当创建一个新的core文件时。内核对权限有一个默认的设置
4.8 仅仅有当unlink函数返回的时候才会释放tempfile的文件夹项,本例仅仅是使用df查看文件系统中实际可用的空间
4.9 使用ulink会更改文件改动时间,假设被删除的链接不是该文件的最后一个链接,则不会删除文件,此时文件的状态更改时间被更新。
假设被删除的链接是文件的最后一个链接。则该文件就会被物理删除,此时更新文件状态时间就没有意义了