首页 > 编程知识 正文

linux内核编译,linux批量重命名

时间:2023-05-05 11:41:13 阅读:137120 作者:618

1 .链接

一个文件可以具有指向该inode的多个目录条目。 要创建指向现有文件的链接,请使用link函数。

intlink(constchar*existingpath,constchar*newpath );

在定义和unistd.h中,调用将成功返回0,否则返回-1

子函数将创建一个引用现有文件existingpath的新目录条目newpath。 如果newpath已经存在,则返回-1,并且它必须已经存在于最后一级目录以外的newpath路径中。 如果不存在,则错误返回-1

在大多数实现中,这两个路径名必须位于同一文件系统中。 如果实现允许创建指向目录的硬链接,则必须是超级用户。 这是因为文件系统可能会循环,大多数APP应用程序都无法满足这一要求

2.unlink

删除目录条目时,将调用unlink函数

intunlink(constchar*pathname );

在unistd.h中定义,如果调用成功,则返回0,否则返回-1

删除目录条目,并将指向所引用文件的链接数减少1。 如果存在指向文件的其他链接,则可以通过其他链接访问文件中的数据

如果发生调用错误,将返回-1,并且文件保持不变

要取消链接文件,您必须对包含该目录条目的目录具有写入和执行权限。

执行unlink函数时,内核首先检查打开该文件的进程数,如果该数命中0,则检查该链接数,如果为0,则删除文件

这意味着,在进程打开文件后,对文件调用unlink不会立即删除文件。 仅当文件被进程关闭或进程终止时,才会从磁盘中删除该文件

如果此文件是符号链接,则unlink仅删除此链接,而不是此链接指向的文件。 没有可以通过符号链接删除指定文件的函数

只有超级用户可以使用unlink删除目录文件,但通常必须使用rmdir函数而不是unlink

3 .移除

删除文件。 对于文件,unlink的功能与remove相同

输入移除(const char * filename );

在stdio.h中定义,如果调用成功,则返回0,否则返回-1

4 .重命名

更改文件名

intrename(char*oldname,char*newname );

在stdio.h中定义,如果调用成功,则返回0,否则返回-1

注意事项:

1。 如果oldname不是目录,请重命名文件或符号链接。 如果newname已经存在且不是目录,则首先删除与newname对应的文件,如果newname已经存在且是目录,则返回-1

2。 如果oldname是一个目录,请重命名该目录。 如果newname所在的目录为空,则首先删除对应于newname的目录,如果newname所在的目录不为空,则返回-1

3。 如果oldname和newname相同,则不执行任何操作,调用正常返回0

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。