当前位置: 技术问答>linux和unix
请教Linux 读取指定目录中文件名的相关程序
来源: 互联网 发布时间:2016-10-26
本文导语: 我的程序有5个线程,其中一个线程循环调用如下函数,当程序运行一段时间后发生段错误,出错位置如下,请高手指教 int get_file_sum() { DIR *dir = NULL; struct dirent entry; struct dirent* entryPtr = NULL; d...
我的程序有5个线程,其中一个线程循环调用如下函数,当程序运行一段时间后发生段错误,出错位置如下,请高手指教
int get_file_sum()
{
DIR *dir = NULL;
struct dirent entry;
struct dirent* entryPtr = NULL;
dir = opendir("/sdcard/sampledata/");
if (dir == NULL)
{ // 出错位置
printf("get_datafile_sum:dir err");
return -2;
}
int f = 0;
char file_name_str[100];
readdir_r(dir, &entry, &entryPtr);
while(entryPtr != NULL)
{
strcpy(file_name_str, entry.d_name);
printf("%sn", file_name_str);
readdir_r(dir, &entry, &entryPtr);
}
closedir(dir);
return 1;
}
int get_file_sum()
{
DIR *dir = NULL;
struct dirent entry;
struct dirent* entryPtr = NULL;
dir = opendir("/sdcard/sampledata/");
if (dir == NULL)
{ // 出错位置
printf("get_datafile_sum:dir err");
return -2;
}
int f = 0;
char file_name_str[100];
readdir_r(dir, &entry, &entryPtr);
while(entryPtr != NULL)
{
strcpy(file_name_str, entry.d_name);
printf("%sn", file_name_str);
readdir_r(dir, &entry, &entryPtr);
}
closedir(dir);
return 1;
}
|
你的dir每次都是关闭的。
opendir失败,有可能是有其他的程序在写目录。
opendir失败,有可能是有其他的程序在写目录。