文件和目录之mkdir和rmdir函数

时间:2023-02-15 17:41:51

用mkdir函数创建目录,用rmdir函数删除目录。

#include <sys/stat.h>
int mkdir( const char *pathname, mode_t mode );
返回值:若成功则返回0,若出错则返回-1

此函数创建一个新的空目录。其中,.和..目录项是自动创建的。所指定的文件访问权限mode由进程的文件模式创建屏蔽字修改。

常见的错误时指定与文件相同的mode(只指定读、写权限)。但是,对于目录通常至少要设置1个执行权限位,以允许访问该目录中的文件名。

用rmdir函数可以删除一个空目录。空目录是只包含.和..这两项的目录。

#include <unistd.h>
int rmdir( const char *pathname );
返回值:若成功则返回0,若出错则返回-1

 

如果调用此函数使目录的链接计数成为0,并且也没有其他进程打开此目录,则释放由此目录占用的空间。如果在链接计数达到0时,有一个或几个进程打开了此目录,则在此函数返回前删除最后一个链接及.和..项。另外,在此目录中不能再创建新文件。但是在最后一个进程关闭它之前并不释放此目录。(即使另一个进程打开该目录,它们在此目录下也不能执行其他操作。这样处理的原因是,为了使rmdir函数成功执行,该目录必须是空的。)

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/