[英]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.