4.1 用stat 函数替换程序清单4-1 中的lstat函数,如若命令行参数之一是符号链接,那么会发生什么变化。
答:stat 函数检测不到符号链接,而是会跟随符号链接找到指向的文件;
4.2 如果文件模式创建屏蔽字是777(八进制),结果会怎样?用shell 的umask 命令验证该结果。
答:创建的文件权限为 000。
$ umask
0777
$ touch 1
$ ls -l 1
---------- 1 public jack 0 2013-01-15 07:59 1
$ umask 0022
$ touch 2
$ ls -l 2
-rw-r--r-- 1 public jack 0 2013-01-15 07:59 2
4.3 关闭一个你所拥有文件用户读权限,将导致不允许你访问自己的文件,对此进行验证。
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ ll 1
-rw-r--r-- 1 jack jack 0 2013-01-15 07:56 1
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ cat 1
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ chmod u-r 1
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ ll 1
--w-r--r-- 1 jack jack 0 2013-01-15 07:56 1
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ cat 1
cat: 1: Permission denied
4.4 创建文件foo 和bar后,运行程序清单4-3 中的程序,这将会发生什么情况?
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ touch foo bar
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ ll foo bar
-rw-r--r-- 1 jack jack 0 2013-01-15 08:33 bar
-rw-r--r-- 1 jack jack 0 2013-01-15 08:33 foo
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ ./umask
jack@jack-laptop:/home/workspace/apue.2e/practice/file_dir$ ll foo bar
-rw-r--r-- 1 jack jack 0 2013-01-15 08:33 bar
-rw-r--r-- 1 jack jack 0 2013-01-15 08:33 foo
creat 函数不会改变原来文件的属性。