개발자/리눅스 Tip
리눅스 디렉토리 및 하위 디렉토리 파일 출력 소스코드
728x90
반응형
리눅스를 사용하면서 디렉토리 및 하위 디렉토리의 파일 이름이 필요한 경우가 생겨서 구현해봤습니다.
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <error.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <errno.h>
#include <string.h>
void printdir(char *dir){
DIR *dp;
struct dirent *entry;
struct stat statbuf;
char buff[256];
if((dp=opendir(dir))==NULL){
return;
}
while((entry=readdir(dp))!=NULL){
lstat(entry->d_name,&statbuf); //디렉토리를 불러와서 lstat함수로 파일 정보를 읽는다.
if(S_ISDIR(statbuf.st_mode)){ //파일정보가 디렉토리일 경우
if(!strcmp(".",entry->d_name)||!strcmp("..",entry->d_name)) // .. 및 . 디렉토리는 제외
continue;
sprintf(buff,"%s/%s",dir,entry->d_name);
printf("%s\n",buff);
chdir(buff); //. 및 .. 이 아닌 다음 디렉토리로 진입
printdir(buff); printdir 함수 재귀함수로 호출
}else{ // 파일정보가 디렉토리가 아닐 경우
sprintf(buff,"%s/%s",dir,entry->d_name);
printf("%s\n",buff);
}
}
}
int main()
{
printdir("/root");
}
반응형
'개발자 > 리눅스 Tip' 카테고리의 다른 글
[Docker] Docker offline 설치방법 (0) | 2021.10.06 |
---|---|
CentOS 7 gcc mysql 컴파일방법 (0) | 2021.10.06 |
sed 문자열에 '(작은 따옴표) 포함 시 변경 (0) | 2021.10.05 |
댓글