Skip to content

Project 기반 기술

Bokyung Kwon edited this page May 13, 2022 · 12 revisions

filestat

filestat은 파일의 정보를 받아오는 함수이다. filestat 함수 구현시에는 stat() 함수를 이용한다. stat() 함수는 파일의 크기, 권한 생성일시, 최종 변경일, 파일의 상태, 정보 등을 얻는 함수이다. 함수의 원형은 다음과 같다.

int stat(const char *path, struct stat *buf)

함수의 인자로는 정보를 받아올 함수의 절대경로 또는 상대경로와 파일의 정보를 저장할 stat struct가 전달된다. 만약 인자로 전달된 파일이 존재하지 않을 경우 -1을 반환하고 성공적으로 파일 정보를 받아올 경우 0을 반환한다. stat() 사용 예시는 아래와 같다.

int file = stat(filepath, stat &);

filetime

filetime은 파일의 시간 정보를 가져오는 함수이며, tm 구조체의 localtime를 이용하여 구현한다.
tm struct의 localtime 은 시간 정보가 들어가는 구조체 포인터로 원형은 다음과 같다.

struct tm localtime(const time_t timep);

sizecmp

sizecmp 함수는 stat 구조체 내에 있는 변수 중 st_size 변수 값을 활용한다. 2개의 정수형 변수에 각 text 파일의 size를 저장한 후 두 개의 값을 비교한다. 조건문 3개를 작성하여 각 상황에 따른 size compare 결과를 출력해준다.

ex)

size compare
size are equal

blockcmp

blockcmp 함수는 stat 구조체 내에 있는 변수 중 st_block 변수 값을 활용한다.
2개의 정수형 변수에 각 text 파일의 block size를 저장한 후 두 개의 값을 비교한다.
조건문 3개를 작성하여 각 상황에 따른 size compare 결과를 출력해준다.

ex)

block compare
text1 is bigger

datecmp

struct tm* localtime은 시 정보가 들어가는 구조체 포인터로,
구조체 변수인 tm_mon, tm_mday를 이용해 각 파일의 date를 비교할 수 있다. 월을 먼저 비교한뒤 날을 비교해 date가 더 빠른 것을 출력해준다.

timecmp

struct tm* localtime : 시간 정보가 들어가는 구조체 포인터이다. 구조체 변수 내 int tm_min; int tm_hour; 변수를 비교하여 시간을 비교한다. hour가 같으면 min을 비교해 더 빠른 것을 출력해준다.

Clone this wiki locally