Projects - OLD‎ > ‎

Homework #2

1. MKBBS
2. DELBBS

LSBBS 
BBS목록을 보는 명령어. 

MKBBS 동작
MKBBS 명령은 새로운 게시판을 만드는 행위이다.

  동작설명

1. board.index 파일이 있는 곳에서 실행해야한다. 
    current directory를 이용해서 프로그램을 작성해야 한다.
2. article.index 파일이 있으면 실행할 수 없다.
3. 사용자에게 게시판 심볼(문자 1개)를 입력받아서 심볼을 디렉토리 이름으로 한다.
4. 사용자에게 게시판 이름을 입력받아야 한다.
5. 사용자에게 게시판 유형을 입력받아야 한다.
7. 현재 디렉토리에 게시판 심볼에 해당하는 디렉토리를 생성한다.
    만약 현재 디렉토리가 심볼릭 링크로 되어있다면 생성하지 않아야 한다.
8. 입력받은 내용은 BBS 개요에서 정한 Board 파일 형식을 따라서 저장해야 한다.
9. board.index 파일의 내용을 수정한다.
10. 생성한 디렉토리에는 기본 board.index 파일 생성해야만 한다.

  힌트
1. mkdir 시스템콜을 사용한다.
2. fstat 시스템콜을 사용한다. (심볼릭 링크 판단하기)
3. errno 를 사용해야 한다.

  실행예시

*  전제 조건: 해당 BBS의 게시판에 직접 방문해서 실행해야 한다.

   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   게시판 심볼: F
   게시판 이름: 자료실
   게시판 유형
   1. 글 게시판
   2. 게시판 목록 : 하위에 게시판을 계속해서 생성할 수 있습니다.
   3. 취소
   게시판 유형을 선택하세요? 1
   생성되었습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   게시판 심볼: F
   게시판 이름: 자료실
   게시판 유형
   1. 글 게시판
   2. 게시판 목록 : 하위에 게시판을 계속해서 생성할 수 있습니다.
   3. 취소
   게시판 유형을 선택하세요? 3
   취소되었습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   게시판 심볼: F
   게시판 심볼 F는 이미 사용중입니다. 다른 심볼을 사용하시겠습니까?(Y/N) Y
   게시판 심볼: P
   게시판 이름: 자료실
   ------------------------------------------------------------------------------------------------------------------------------------------------
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   게시판 심볼: F
   게시판 심볼 F는 이미 사용중입니다. 다른 심볼을 사용하시겠습니까?(Y/N) N
   취소되었습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   board.index 파일이 없는 곳에서 실행하는 경우
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   BBS 게시판이 아닙니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   article.index 파일이 없는 곳에서 실행하는 경우
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   하위 게시판을 생성할 수 없습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   심볼릭 링크인 디렉토리에서 실행하는 경우
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   게시판 경로가 잘못되었습니다. 올바른 위치에서 실행해야합니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   디렉토리를 생성할 수 있는 권한이 없는 경우
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   시스템 오류: 권한이 없습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   board.index 파일이 올바르지 않을 경우.
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   시스템 오류: 게시판 정보가 올바르지 않습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   위의 예시에서 빨간색으로 표시된 글은 사용자가 입력한 것이다.

DELBBS 동작
DELBSS 명령은 게시판을 삭제하는 행위이다.

  동작설명

1. board.index 파일이 있는 곳에서 실행해야한다. 
    current directory를 이용해서 프로그램을 작성해야 한다.
2. 삭제할 게시판 심볼이 있어야 한다.
3. board.index 파일의 내용을 수정한다.
    board.index에서 해당하는 게시판심볼을 찾아서 글번호 앞에 공백(' ')을 덮어쓴다.
    예시
                       //3번 글일 경우
    자료실

  힌트
1. unlink 시스템콜을 사용한다.
2. errno 를 사용해야 한다.

  실행예시

*  전제 조건: 해당 BBS의 게시판에 직접 방문해서 실행해야 한다.

   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ delbbs 1
   삭제한 게시판은 복구할 수 없습니다. 계속하시겠습니까(Y/N)? Y
   게시판 1이 삭제되었습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ delbbs 1
   해당 게시판은 하위 게시판을 가지고 있습니다. 하위 게시판을 먼저 삭제해야합니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ delbbs 1
   해당 게시판이 존재하지 않습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   위의 예시에서 빨간색으로 표시된 글은 사용자가 입력한 것이다.

   board.index 파일이 없는 곳에서 실행하는 경우
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ delbbs 1
   BBS 게시판이 아닙니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   article.index 파일이 있는 곳에서 실행하는 경우
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ delbbs 1
   하위 게시판이 존재하지 않습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   디렉토리를 삭제할 수 있는 권한이 없는 경우
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ delbbs 1
   시스템 오류: 권한이 없습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------

   board.index 파일이 올바르지 않을 경우.
   ------------------------------------------------------------------------------------------------------------------------------------------------
   [u20121234@linux 1]$ mkbbs
   시스템 오류: 게시판 정보가 올바르지 않습니다.
   ------------------------------------------------------------------------------------------------------------------------------------------------