重庆lcw爱打台球 2022-04-20 11:02 采纳率: 0%
浏览 77

Linux访问目录函数opendir和readdir

,Linux下的系统函数,Dir* dir=opendir(“/proc”)
while(auto entry = readdir(dir))
第二行崩溃了,core文件显示崩溃在readdir,求解[疑问]

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-04-20 11:43
    关注

    摒弃opendir,使用system("ls ...");
    原因参考下面:
    system("dir /b /a-d c:\. >d:\allfiles.txt");
    //读文件d:\allfiles.txt的内容即C:\下所有文件的名字
    system("dir /b /a-d /s c:\. >d:\allfilesinsub.txt");
    //读文件d:\allfilesinsub.txt的内容即C:\下所有文件的名字包含子目录
    system("dir /b /ad c:\. >d:\alldirs.txt");
    //读文件d:\alldirs.txt的内容即C:\下所有子目录的名字
    请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。
    如果嫌system黑窗口一闪,将system("...")替换为WinExec("cmd /c ...",SW_HIDE);

    评论

报告相同问题?

问题事件

  • 创建了问题 4月20日

悬赏问题

  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22