특별한딸기이야기
설계 파일 본문
시스템 프로그래밍 과제 설계 파일
~ Input_name 함수
! 목적
@ 옵션으로 입력받은 디렉토리명 또는 화일명을 변수에 저장한다.
! 입력값
@ 입력받은 문자열
@ 저장할 문자열
! 내용
@ 입력받은 문자열의 길이를 계산한다.
@ 저장할 문자열을 입력받은 문자열의 길이에 맞게 동적할당을 한다.
@ 저장할 문자열에 입력받은 문자열을 복사한다.
~ Out 함수
! 목적
@ 파일의 속성을 파일 디스크립터에 따라 저장한다.
! 입력값
@ 파일의 종류
# 파일 또는 디렉토리
@ stat 변수
@ dirent 변수
@ 파일디스크립터
! 내용
@ 파일의 속성을 담을 공간을 여유있게 동적 할당을 한다.
@ stat 또는 dirent에 들어있는 속성들을 하나씩 동적 할당한 공간에 복사해 넣는다.
@ 속성들이 들어간 동적 할당 공간의 길이를 측정한다.
@ write함수를 통해 파일디스크립터가 가르키는 곳으로 출력한다.
@ 동적 할당을 해제한다.
~ Command 함수
! 목적
@ 파일 또는 디렉토리를 탐색한다.
! 입력값
@ 탐색할 디렉토리 명
@ 파일 디스크립터
! 내용
@ opendir함수를 사용하여 디렉토리 포인터를 받아온다.
@ 포인터를 받아오지 못하면 에러 표시를 하고 프로그램 종료
@ readdir 함수를 통해 디렉토리에 들어있는 내용물을 하나씩 받아온다.
@ stat을 받아오기 위해 절대 경로를 작성한다.
# 메모리 동적 할당을 통해 주소가 들어갈 메모리 공간을 확보하고 주소를 복사해 집어 넣는다,
@ lstat함수를 통해 stat을 확보한다.
@ 파일 속성이 디렉토리일 경우
# 디렉토리 파일명이 "." 또는 ".."이 아닌지 확인한다.
$ 맞을 경우 다음 디렉토리 내용물을 받아온다.
$ 아닐 경우 디렉토리의 속성을 Out함수를 통해 출력한다.
$ 새로운 디렉토리 파일명을 담을 공간을 동적 할당을 통해 확보한다.
$ 현재 디렉토리 명에 지금 디렉토리 파일명을 합쳐 새로운 경로를 만든다.
$ Command 함수를 호출한다.
# 파일 속성이 파일일 경우
$ 파일의 속성을 Out함수를 통해 출력한다.
@ closedir을 통해 파일 포인터를 닫는다.
~ main함수
! 목적
@ 프로그램의 시작 및 끝을 담당한다.
! 입력값
@ 사용자의 옵션값
! 내용
@ 사용자의 옵션값에 지원하는 옵션이 들어왔는지 확인한다.
@ 디렉토리 명이 들어오지 않았을 경우 현재 디렉토리를 의미하는 "."을 입력한다.
@ 파일명이 들어오지 않았을 경우 파일 디스크립터를 1로 지정한다.
# 1은 표준 출력을 의미
~ Input_name 함수
! 목적
@ 옵션으로 입력받은 디렉토리명 또는 화일명을 변수에 저장한다.
! 입력값
@ 입력받은 문자열
@ 저장할 문자열
! 내용
@ 입력받은 문자열의 길이를 계산한다.
@ 저장할 문자열을 입력받은 문자열의 길이에 맞게 동적할당을 한다.
@ 저장할 문자열에 입력받은 문자열을 복사한다.
~ Out 함수
! 목적
@ 파일의 속성을 파일 디스크립터에 따라 저장한다.
! 입력값
@ 파일의 종류
# 파일 또는 디렉토리
@ stat 변수
@ dirent 변수
@ 파일디스크립터
! 내용
@ 파일의 속성을 담을 공간을 여유있게 동적 할당을 한다.
@ stat 또는 dirent에 들어있는 속성들을 하나씩 동적 할당한 공간에 복사해 넣는다.
@ 속성들이 들어간 동적 할당 공간의 길이를 측정한다.
@ write함수를 통해 파일디스크립터가 가르키는 곳으로 출력한다.
@ 동적 할당을 해제한다.
~ Command 함수
! 목적
@ 파일 또는 디렉토리를 탐색한다.
! 입력값
@ 탐색할 디렉토리 명
@ 파일 디스크립터
! 내용
@ opendir함수를 사용하여 디렉토리 포인터를 받아온다.
@ 포인터를 받아오지 못하면 에러 표시를 하고 프로그램 종료
@ readdir 함수를 통해 디렉토리에 들어있는 내용물을 하나씩 받아온다.
@ stat을 받아오기 위해 절대 경로를 작성한다.
# 메모리 동적 할당을 통해 주소가 들어갈 메모리 공간을 확보하고 주소를 복사해 집어 넣는다,
@ lstat함수를 통해 stat을 확보한다.
@ 파일 속성이 디렉토리일 경우
# 디렉토리 파일명이 "." 또는 ".."이 아닌지 확인한다.
$ 맞을 경우 다음 디렉토리 내용물을 받아온다.
$ 아닐 경우 디렉토리의 속성을 Out함수를 통해 출력한다.
$ 새로운 디렉토리 파일명을 담을 공간을 동적 할당을 통해 확보한다.
$ 현재 디렉토리 명에 지금 디렉토리 파일명을 합쳐 새로운 경로를 만든다.
$ Command 함수를 호출한다.
# 파일 속성이 파일일 경우
$ 파일의 속성을 Out함수를 통해 출력한다.
@ closedir을 통해 파일 포인터를 닫는다.
~ main함수
! 목적
@ 프로그램의 시작 및 끝을 담당한다.
! 입력값
@ 사용자의 옵션값
! 내용
@ 사용자의 옵션값에 지원하는 옵션이 들어왔는지 확인한다.
@ 디렉토리 명이 들어오지 않았을 경우 현재 디렉토리를 의미하는 "."을 입력한다.
@ 파일명이 들어오지 않았을 경우 파일 디스크립터를 1로 지정한다.
# 1은 표준 출력을 의미
'딸기 공부방 > 시스템프로그래밍' 카테고리의 다른 글
프레젠테이션 (0) | 2008.06.10 |
---|---|
시스템 프로그래밍 문서 (0) | 2008.06.05 |