我需要在C程序中使用*找到文件的名称。特定文件夹中只有一个文件的扩展名为.UBX。我可以在终端中执行此操作,但它在C中不起作用。任何人都可以给我示例代码来执行此操作吗?
//There is exactly 1 file that ends in .UBX
#define FILE_TO_SEND "/home/root/logs/*.UBX"
fd = open(FILE_TO_SEND, O_RDONLY);
答案 0 :(得分:3)
这应该可以解决问题:
#include <glob.h>
#include <stdlib.h>
#include <fcntl.h>
#define FILE_TO_SEND "/home/root/logs/*.UBX"
int
main (void)
{
glob_t globbuf;
glob(FILE_TO_SEND, 0, NULL, &globbuf);
if (globbuf.gl_pathc > 0)
{
int fd = open(globbuf.gl_pathv[0], O_RDONLY);
// ...
}
globfree(&globbuf);
return 0;
}