gpt4 book ai didi

c - 在 C 中,检查是否存在名称与模式匹配的文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:22 25 4
gpt4 key购买 nike

我见过几种用 C 语言检查文件是否存在的方法。但是,我见过的所有方法都适用于特定的文件名。我想检查与特定模式匹配的任何文件。例如,模式可能是“lockfile*”,“lockfileA”、“lockfile.txt”或“lockfile.abc”将在检查中注册。我目前这样做的方法是使用 opendir() 打开目录,然后循环遍历 readdir() 并尝试将模式与返回的每个文件的名称相匹配。它有效,但我肯定想要一种更紧凑的方法来做到这一点。有什么想法吗?

最佳答案

您可以使用 glob(3) (由 POSIX 标准化)。你给它一个通配符模式,它会在文件系统中搜索匹配项。

示例:

#include <glob.h>
#include <stdio.h>

int main(int argc, char **argv)
{
glob_t globbuf;
if (0==glob(argv[1], 0, NULL, &globbuf)){
char **a=globbuf.gl_pathv;

puts("MATCHES");
for(;*a;a++)
puts(*a);
}
globfree(&globbuf);
}

运行:

./a.out 'lockfile*'

应该给你你的锁文件。

关于c - 在 C 中,检查是否存在名称与模式匹配的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com