본문 바로가기
lesson/system programming

시스템 프로그래밍 02. 디렉터리 다루기

by Peter Choi 2024. 1. 25.
반응형

01 개요

리눅스에서는 파일은 파일면, inode, 데이터 블록으로 구성된다.

inode는 번호로 저장되며, 파일의 소유자나 크기 등의 정보와 실제 데이터를 저장하고 있는 데이터 블록의 위치를 나타내는 주소들이 저장되어 있다.


02 리눅스 파일의 특징

리눅스 파일에는 일반 파일, 특수 파일, 디렉토리로 구분할 수 있다. 


03 디렉터리 생성과 삭제

디렉터리 생성 : mkdir(2)

SYNOPSIS
       #include <sys/stat.h>
       #include <sys/types.h>

       int mkdir(const char *pathname, mode_t mode);

 

디렉터리 삭제 : rmdir(2)

SYNOPSIS
       #include <unistd.h>

       int rmdir(const char *pathname);

 

04 디렉터리 관리

현재 작업 디렉터리의 위치 검색 1 : getcwd(3)

SYNOPSIS
       #include <unistd.h>

       char *getcwd(char *buf, size_t size);

 

현재 작업 디렉터리의 위치 검색 2 : get_current_dir_name(3)

SYNOPSIS
       #include <unistd.h>

       char *get_current_dir_name(void);

 

디렉토리명 변경 : rename(2)

SYNOPSIS
       #include <stdio.h>

       int rename(const char *oldpath, const char *newpath);

 

디렉토리 이동 1 : chdir(2)

SYNOPSIS
       #include <unistd.h>

       int chdir(const char *path);

 

디렉토리 이동 2 : fchdir(2)

SYNOPSIS
       #include <unistd.h>

       int fchdir(int fd);

 

05 디렉터리 내용 읽기

디렉토리 열기 : opendir()

SYNOPSIS
       #include <sys/types.h>
       #include <dirent.h>

       DIR *opendir(const char *name);

 

디렉토리 닫기 : closedir()

SYNOPSIS
       #include <sys/types.h>

       #include <dirent.h>

       int closedir(DIR *dirp);

 

디렉토리 내용 읽기 : readdir()

SYNOPSIS
       #include <dirent.h>

       struct dirent *readdir(DIR *dirp);

 

디렉토리 오프셋 1 : telldir()

디렉토리 오프셋 2 : seekdir()

디렉토리 오프셋 3 :rewinddir()

SYNOPSIS
       #include <sys/types.h>
       #include <dirent.h>

       long telldir(DIR *dirp);
       void seekdir(DIR *dirp, long loc);
       void rewinddir(DIR *dirp);
반응형

댓글