unlink remove
int unlink(const char *pathname);
- 删除一个文件的目录项并减少它的链接数
- unlink()会删除参数pathname指定的文件。如果该文件名为最后连接点,但有其他进程打开了此文件,则在所有关于此文件的文件描述词皆关闭后才会删除。如果参数pathname为一符号连接,则此连接会被删除
- 关闭一个文件时,内核首先检查打开该文件的进程数。如果该数达到0,然后内核检查其链接数,如果这个数也是0,那么就删除该文件的内容
- unlink的这种性质经常被用来确保即使是在该程序崩溃时,它所创建的临时文件也不会遗留下来
- 进程用open或create创建一个文件,然后立即调用unlink。因为该文件仍旧是打开的,所以不会将其内容删除。只有当进程关闭该文件或终止时(在这种情况下,内核会关闭该进程打开的全部文件),该文件的内容才会被删除
int remove(const char *pathname);
删除一个文件,相当于unlink函数,但是如果它的filename参数是一个目录的话,其作用就相当于rmdir函数