소개
이 랩에서는 dirent.h 헤더 파일을 사용하여 디렉토리에 있는 모든 파일을 나열하는 C 프로그램을 만들 것입니다.
참고: 코딩을 연습하고 gcc 를 사용하여 컴파일하고 실행하는 방법을 배우려면 직접
~/project/main.c파일을 생성해야 합니다.
cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main
헤더 파일 포함
프로그램 시작 부분에 다음 코드를 작성하여 표준 입출력 및 dirent 헤더 파일을 포함해야 합니다.
#include <stdio.h>
#include <dirent.h>
Main 함수 정의
main() 함수는 우리 프로그램의 진입점입니다. 우리 프로그램은 여기서부터 실행을 시작합니다. 또한 DIR 타입의 디렉토리 포인터 d와 struct dirent 타입의 디렉토리 엔트리 포인터 dir을 선언할 것입니다.
int main(void)
{
DIR *d;
struct dirent *dir;
/*Your code goes here*/
return 0;
}
디렉토리 열기
opendir() 함수를 사용하여 필요한 디렉토리를 열 것입니다. 여기서 점 (.) 연산자는 현재 디렉토리를 나타냅니다.
d = opendir(".");
디렉토리 읽기
readdir() 함수를 사용하여 디렉토리의 각 항목을 읽을 것입니다. 여기서 디렉토리 포인터가 NULL 이 아닌지 확인합니다. NULL 이 아니면 디렉토리에 있는 모든 파일을 출력합니다.
if (d)
{
while ((dir = readdir(d)) != NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
전체 코드
다음은 프로그램의 전체 코드입니다.
#include<stdio.h>
#include<dirent.h>
int main(void)
{
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d)
{
while ((dir = readdir(d)) != NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
}
요약
이 랩에서는 디렉토리 내의 모든 파일 이름을 나열하는 C 프로그램을 만드는 방법을 배웠습니다. 이를 위해 dirent.h 헤더 파일의 함수를 사용했습니다. 이 프로그램을 사용하면 지정된 디렉토리에 있는 모든 파일의 이름을 쉽게 검색할 수 있습니다.



