도인을 만나다

영등포 시장에서 내리자 마자 한 사람이 내 등을 툭 건드린다.
뒤돌아봤더니 지난번에도 이야기 한번 해보고 싶다고 시간없냐고
물었던 그 도인이였다. 지난 번에는 바로 버스가 와서 용케 피했지만
오늘은 버스가 빨리 안와서 할 수 없이 몇마디 나누어야 했다.
나 보고 복이 많게 생겼다고 하더니, 미남이란다

‘이 사람, 꼬맹이들과 달리 사람 보는 눈은 있군’

생각하고는, 이런 저런 이야기를 나누었는데, 조상의 업보가 많아서
내가 덕을 많이 쌓아야 하는데, 기도하러 가지 않겠냐고 해서,
안가겠다고 했더니, 거짓말 처럼 돌아서서 가버렸다 @.@

1학년때도 한동안 도인을 마주친적이 있다.
과외하러 가다 오다, 종로3가 5호선 타는 공간에서,
같은 젊은 여자 도인을 3번이나 만났으니…

잠시 후 6631은 왔지만, 초만원버스였다.
전에 이대목동병원에 갔었던 것을 떠올리며,
새로운 루트를 뚫어보기로 했다.

6637을 타고 목동월촌 중학교에서 내려 6627로 갈아타는 방법이였고,
한가로운 버스에 앉아서 갈 수 있는 장점은 있었지만,
결정적으로 영등포에서 신월IC를 가는 길목에서 엄청나게 막혀서
집에 오는데 총 1시간 반이 걸려버렸다 @.@

서울이 싫다, 통학하기 싫다!

운명의 장난

오늘은 정보대 스타대회 2:2 예선전이 있던 날…
오즈에서는 승표가 개인전을 출전하였고,
봉중&건우, 병운형&한길형 이렇게 팀플전에 두 팀이 출전했다

아침에 학교에 와서 조편성을 봤더니, 병운형팀이랑 같은조가 아닌가…
불길한 예감을 떨쳐버릴 수 없었다

결국 이 무슨 운명의 장난인가…
최악의 상황이 벌어졌다. 예선 1차전 상대로 병운형 팀이 내정된 것이였다 T.T

초반 마우스가 너무 빨라서 조절한다고 옵션가서 세팅하고
나온다고 ESC를 다다다다 눌렀는데 6번째 만들어지고 있던
프루브가 취소되었다 지쟈쓰!

구경하는 사람 많고 혼잡하고, 나는 당황하기 시작했다.
초반에 드세게 몰려오는 병운형의 마린과 한길형의 저글링에
패배를 예감했다. 캐논을 안 지어났으면 바로 밀릴뻔…

다행히 초반에 잘 막은 후 봉중이의 엄청난 손놀림으로
역전승을 할 수 있었다.

둘째판은 봉중이 친구들이였는데
토스&토스 vs 토스&테란
헌터전이였다. 제발 노스텔지아가 걸리기를 바랬건만…

예상외로 테란이 메카닉으로 나오는 바람에
전략은 빛나가고, 엄청난 물량에 내가 반쯤 밀린 후,
봉중이가 몸부림쳤으나, 테란하는 친구가 터렛지으면서
압박을 잘해서, 이길 수가 없었다 T.T

대회에서 게임하는 긴장감…
또 하나의 색다른 경험이되었고, 좋은 추억으로 남겠지~ ^^

운영체제 첫번째 숙제

  1. 시스템 콜을 이용하여 기본적인 쉘 프로그램 작성하기

    가. 목적
    기본적인 기능을 수행하는 쉘 프로그램 구현

    나. 사용 시스템 콜
    fork, exec or execve, pipe, wait 등

    다. 구현 기능
    a. 기본적인 명령어 수행 기능
    realtime> ./my_shell
    my_shell>> ls
    a.out test1.c test2.c test3.c

    b. 백그라운드 기능 구현
    my_shell>> a.out&
    my_shell>> ps -aux
    =========== Output ==============


    a.out
    =================================

    c. 리다이렉션 기능
    my_shell>> ls -alF > dir.txt
    my_shell>> ls /bin >> dir.txt
    my_shell>> cat dir.txt
    =========== Output ===============
    ls -alF 결과
    +
    ls /bin 결과
    ==================================

    d. 파이프 기능
    my_shell>> ls | grep test
    =========== Output ===============
    test1.c test2.c test3.c
    ==================================

    e. 파일 이름 자동완성 기능
    (Tab키를 누르면 현재 까지 입력된 파일명을 기반으로 현재 디렉토리 내에서
    일치하는 파일이 있으면 자동으로 입력해준다.
    복수 개의 파일이 있으면 같은 부분까지만 자동으로 입력해주고
    복수개의 해당 파일을 표시해 주기만 한다.

– 현재 디렉토리의 파일에만 적용)
my_shell>> ls
a.out test1.c test2.c test3.c
my_shell>> a -> 이 상태에서 Tab 키를 누르면 아래의 형태로 자동 입력됨 – 물론 명령어 입력은
되지 않은 상태
my_shell>> a.out
my_shell>> t -> 이상태에서 Tab 키를 누르면 아래의 형태로 같은 부분까지 자동 입력되고, 복수개의 파일이 표시됨
my_shell>> test
test1.c test2.c test3.c

f. 명령 저장 기능
이전에 사용한 명령어 행을 방향키 위 아래 버튼을 사용하여 직접 입력하지 않고도
편하게 사용할 수 있도록 한다.
my_shell>> ls -alF
.
.
my_shell>> ps -aux
.
.
my_shell>>  -> 이 상태에서 방향키 위 버튼을 누르면 아래의 형태로 나타남
my_shell>> ps -aux -> 한 번더 방향키 위 버튼을 누르면 아래의 형태로 나타남
my_shell>> ls -alF -> 여기에서 방향키 아래 버튼을 누르면 아래의 형태로 나타남
my_shell>> ps -aux
(명령 저장 갯수는 80개 까지로 한다.)

라. 참조 문서
Advanced Programming in the UNIXEnvironment -Stevens-
UNIX SYSTEM Programming – 홍릉 출판사 –
및.. 기타 관련서적

마. 기간
가반 24일(금)까지
나반 23일(목)까지
다반 24일(금)까지

=== 주의사항 ==
– 처음에 공지 했던 Coding Style을 만족할것
– 전체적인 프로그램 구조에 관한 설명이 있어야함

여유

아침에 일어나 사이버 강좌 레포트를 1시간만에 완료하고,
다음주 일요일까지 제출해야하는 정보검색 과제를 시작했다.

지난번 5번째 까지 가는 압박이 있었기에,
이번에는 빨리 끝내버리고 싶었다.

주어진 디렉토리에 있는 문서 파일에서 문서를 구분하고,
offset과 length를 뽑는 과제였는데, 일단 디렉토리의
파일 목록을 뽑아와야 해서, 뭘 보고 하나 고민하다가
Advanced Linux Programming Ebook을 뒤져서,
금방 해결 할 수 있었다.

한번에 100점을 받고 나니, 얼씨구나 지화자 좋다.
내 앞에 주어진 과제들이 없기에 내가 하고 싶었던 것을 할 때다!

버그는 사소한 곳에…

정보검색과제를 하면서 5번 안에 제출해야 감점이 없는데
오늘은 한번의 기회 남겨놓고 벼랑끝에 몰렸다…

과제의 요점은 html문서를 요청해서 저장하고,
a 링크로 연결된 URL을 뽑아오는 것이였는데,
URL뽑는데만 혈안이 되어서는, 없는 오류만 계속 찾고 있었다.

결국 오류는 아주 사소한 곳에 있었다.
당연히 완벽하다고 생각했던 부분에…

recv로 요청한 웹페이지를 받을 때 버퍼 사이즈에 꽉 채워서
받고는 그걸 파일에 기록했으니 널문자를 언제 만날지 기약이
없는 상태였다. 문제는 뒤에 쓰레기 문자가 들어가도 파일사이즈가
맞는 결과와 동일했고 외형상으로도 알수가 없었기에 전혀 의심을 못했다.

핑계지만, 자바였다면 발생하지 않았을 버그…
C언어 문자열의 처리에서 늘 null문자를 신경써야 한다는 사실을…
다시 한번 명심!