18.Linux/Unix 系统编程手册(上) -- 目录与链接

本文介绍了进程中的根目录和当前工作目录的作用,详细解释了硬链接的限制条件,并探讨了通过chroot()函数来改变进程的根目录的方法及其应用场景。

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

	每个进程都有2个目录相关属性 根目录和当前工作目录,分别用于解释绝对路径名和相对路径名提供参照点。

1.目录和硬链接
	i-node 表的编号始于1,而非0.若目录条目的 i-node 字段值为0,表示该条目尚未使用。
  i-node 1 用来记录文件系统的坏块。文件系统根目录(/) 总是存储在 i-node 条目2中,所以
  内核在解析路径名时就知道从哪里下手。

  	硬链接限制:
  		1.硬链接必须与其指代的文件驻留在同一个文件系统中
  		2.不能为目录创建硬链接

2.更改文件名: rename()
	rename 仅操作目录条目,不移动文件数据

3.改变进程的根目录: chroot()
	每个进程都有一个根目录,该目录是解释绝对路径(即那些以 / 开始的目录)时的起点。
	这会将应用程序限定于文件系统的特定区域。
	例如,ftp ,当匿名用户登录时,ftp 将使用 chroot() 为新进场设置根目录 --- 一个专门预留
  给匿名登录用户的目录。调用 chroot 后,用户将受困于文件系统中新根目录的子树中,无法再整个文件
  系统中自由驰骋(这里所依赖的事实是根目录是其自身的父目录,也就是说 /.. 是 / 的一个链接,所以改变目录到 / 后
  再执行cd .. 命令时,用户依然会待在同一个目录下)。


readdir();
link();
unlink();
rmdir();
remove();
rename();
symlink();
readlink();
mkdir();
rmdir();
remove();
opendir();
fdopendir();
readdir();
rewinddir();
closedir();
telldir();
seekdir();
dirfd();
readdir_r();
nftw();
getcwd();
chdir();
fchdir();
chroot();
realpath();
dirname();
basename();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值