符号链接文件和硬链接文件
□□实验6-11.针对符号连接文件和硬连接文件。
测试以下函数,分析其执行过程并给出结论。
link(),unlink(),symlink(),readlink(),stat(),lstat()
1.Stat();lstat();
分析:b文件为a文件的软连接文件,从实验测试可以看出用stat();函数测试b文件显示的权限为文件a的权限,用lstat();函数测试b文件显示的权限为自身权限。
结论:如果stat函数的第一个参数为符号连接文件,其读取的属性为源文件属性,如果要获取连接文件自身的属性,要调用lstat函数。
2.link();
分析:用link函数创建新文件a,删除abc文件后,a文件还能查看其内容。
结论:用link函数创建的文件为硬链接文件,删除源文件也可以运行。
3.unlink();
分析:先确保没有a文件,创建abc文件的硬链接文件a,调用unlink函数删除源文件abc后查看结果,在创建a文件后文件属性硬链接数为2,删除源文件abc后文件属性硬链接数为1。
结论:unlink函数是将该文件属性的硬链接数自动减1,但是绝大多数文件硬链接数为1,所以减1后即为删除。
4.symlink();
分析:用symlink函数创建的新文件sym_link_test,当删除源文件abc时,则不能查看文件sym_link_test的内容。
总结:symlink函数的功能是创建符号连接文件。
5.readlink();
分析:用readlink函数,测试后显示符号连接文件sym_link_test的源文件名称。
总结:readlink函数的功能是讲指定符号连接文件的源文件路径读入到buf中。