일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래밍
- 시스템
- 리버싱
- 리눅스 커널
- px4
- 커널
- 시스템프로그래밍
- 시스템해킹
- pwncollege
- 시스템 프로그래밍
- 리눅스
- 드론
- wargame
- Bandit
- 어셈블리어
- 취약점
- css
- kernel
- 리눅스커널
- 워게임
- Leviathan
- radare2
- C++
- pwn.college
- C언어
- 컴퓨터구조
- 알고리즘
- Pwnable.kr
- 시그널
- write up
Archives
- Today
- Total
Computer Security
#15 디렉토리 다루기 (실습) 본문
반응형
opendir API를 이용해서 디렉토리 내에 파일의 목록을 출력하고, 각 파일의 타입들에 대해 출력하는 프로그램을 만들어 보자.
1. 기본적인 뼈대를 만들어 주자.
2. opendir API를 이용해 디렉토리 스트림포인터를 얻자.
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
3. opendir 반환값을 받아올 DIR 포인터를 선언한다.
4. dp = opendir(".") -> 현재 디렉토리(.) 를 오픈한다.
5. 예외 처리 해준다.
6. 디렉토리내에 파일 목록을 읽는 API인 readdir 을 이용한다.
struct dirent *readdir(DIR *dirp);
7. readdir 반환 값을 받아 올 struct dirent *entry 를 이용해 struct 포인터를 선언해준다.
8. entry = readdir(dp) 로 호출해준다. (반복문을 수행해야한다.)
--> readdir 에 실패했을때도 null 포인터를 리턴하지만, 디렉토리 마지막 파일을 읽고난 뒤에도 null 포인터를 리턴한다.
--> while 문을 사용한다.
9. while문안에서 파일의 이름과 해당 파일에 타입에 대해 출력 해야한다.
값을 int 형식으로 출력하면 어떤 파일인지 알기 힘드니, 비교해서 스트링을 출력할 수 있는 매크로를 작성하자.
10.while문안에서 파일의 이름과 해당 파일에 타입에 대해 출력 하는 소스코드를 작성하자.
11. closedir(dp) 를이용해 닫아준다.
12. 전체 소스 코드이다.
13. gcc 명령어를 이용해서 opendir.c 를 컴파일 한 후 실행 시켜준다.
잘 출력 된 것을 확인 할 수 있다!
반응형
'리눅스 시스템 프로그래밍' 카테고리의 다른 글
#17 Memory map (실습) (0) | 2022.09.22 |
---|---|
#16 Memory map (2) | 2022.09.21 |
#14 디렉토리 다루기 (2) | 2022.09.19 |
#13 파일 속성(실습) (0) | 2022.09.18 |
#12 파일 속성 (0) | 2022.09.17 |
Comments