阅读内容

Linux readdir的多线程版本使用举例

[日期:2008-09-29] 来源:Linux社区  作者:Linux编辑


readdir_r 是 readdir 在 Linux 下的多线程版本,它的参数有些奇怪,所以我这里给个使用的例子。

bool GetFileNamesInDir(const string& strDir,
vector<string>& vecFileName)
{
DIR* dir = NULL;
struct dirent entry;


struct dirent* entryPtr = NULL;

dir = opendir(strDir.c_str());
if (NULL == dir)
{
return false;
}

readdir_r(dir, &entry, &entryPtr);
while (entryPtr != NULL)
{
string strFileName = entry.d_name;
if ("." == strFileName || ".." == strFileName)
{
}
else
{
vecFileName.push_back(strFileName);
}
readdir_r(dir, &entry, &entryPtr);
}

return true;
}


该函数得到指定目录下的所有文件名,放把它们放到 vector 中。 




相关资讯       linux编程 
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:

L
I
N
U
X


GOOGLE搜索
Google