Unix 手册阅读 - rmdir.2
rmdir() 函数是命令 rmdir 的底层函数,它可以删除一个空目录。空目录的概念,在 Unix 编程中,是指只包含了 . 和 .. 这两项的目录。调用成功意味着:这个目录在文件系统系统中占用的空间被释放。
目录下有文件,意味着它的链接计数不为 0,也就是说,不是空目录。对这样的目录调用 rmdir() 会报错 ENOTEMPTY。
另外,值得一提的是,就算链接计数到 0 了,如果有进程还打开了这个目录,那么调用函数也会失败,报错 EBUSY。
衍生思考:
- 文件系统节点下明明有
.和..两项,为什么还叫空目录呢?不妨将.和..看作是进入和离开目录的门的门把手,而非是目录里的文件。 rmdir为什么这么执着于删除空目录,而把删除递归删除文件这种事情交给rm -r呢?一个想法是 rmdir …
阅读 Python 文档 - stat 模块
Python stat 模块定义了一些帮助解读 struct stat 结构体的常量和函数。struct stat 结构体可以由 stat, fstat, lstat 这三种操作返回。
我们一般用 ls -l 查看 stat 的信息。
这些常量应该被定义在 <sys/stat.h> 头文件中,例如
S_ISDIR(mode)- 目录S_ISCHR(mode)- character special device file (for nocaching device reading)S_ISBLK(mode)- block special device file (for caching device reading)- 注 …