繁体   English   中英

从C代码中删除文件

[英]removing files from C code

我必须在我的C代码中删除几百个文件。 我在循环中使用“删除”。 有没有比使用“删除”更快的方法呢? 我问这个是因为我不能使用“删除”给野人。

不,没有比在循环中使用POSIX系统上的remove()unlink()更快的方法。

系统rm命令也是这样做的 - 至少在命令行上给出名称的简单非递归情况下。 shell扩展了元字符,并且rm (in)着名地删除了它被告知要删除的内容,而不知道在命令行上使用的灾难性*.*表示法。 (在递归的情况下,它使用诸如nftw()类的函数以深度优先顺序遍历目录结构,并重复调用unlink()以删除文件,并使用rmdir()删除(现在为空)目录。 )

POSIX确实提供了函数( glob()wordexp() )来生成(POSIX)shell中使用的元字符的文件名列表,以及fnmatch()以查看名称是否与模式匹配。

您可以使用system来生成一个shell,它将为您进行*扩展。 这可能不会比在循环中调用unlink()更快地运行,因为它必须生成一个shell(启动一个新进程)。 但是编码会更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM