我目前正在开发一个 C 程序,我需要检查一个字符串中是否有一个字符串。该字符串可能是 mylog.txt.1,我想检查它是否包含 mylog.txt 以及它是否确实执行了某些操作。
为了执行此操作,我使用以下代码
int logMaintenance(void *arg)
{
while (TRUE)
{
DIR *dir;
struct dirent *ent;
dir = opendir(directory);
if (dir != NULL)
{
while ((ent = readdir (dir)) != NULL)
{
if (strstr(ent->d_name, fileName) != NULL )
{
printf("%s\n", ent->d_name);
}
}
closedir(dir);
}
else
{
printf("Failed to read directory %i", EXIT_FAILURE);
}
SL_WU_SleepUSecs(2000);
}
return 0;
}
但是,此代码似乎不起作用。出于某种原因,它只会打印 mylog.txt 而不会包含以 .1 或 .2 等结尾的任何其他文件。我还尝试在 if 语句中使用 >=0 而不是 != NULL ,这只是打印一切,即使它不包括 mylog.txt。
感谢您的任何帮助,您可以提供。