首页 > 代码库 > readdir_r()读取目录内容
readdir_r()读取目录内容
readdir()在多线程操作中不安全,Linux提供了readdir_r()实现多线程读取目录内容操作。
#include <stdio.h> #include <stdlib.h> #include <dirent.h> int main(void) { DIR* dirp; struct dirent *dp1=malloc(sizeof(struct dirent)); struct dirent *dp2=malloc(sizeof(struct dirent)); dirp=opendir("."); while(1) { if((readdir_r(dirp,dp1,&dp2))!=0) { perror("readdir_r"); exit(EXIT_FAILURE); } if(dp2==NULL) break; if(dp2->d_name[0]==‘.‘) continue; printf("inode=%d\t",dp2->d_ino); printf("reclen=%d\t",dp2->d_reclen); printf("name=%s\n",dp2->d_name); } close(dirp); free(dp1); free(dp2); return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。