Guestbook

  • 동화 2012.12.07 21:34 EDIT/DEL REPLY

    안녕하세요~ 어제 리눅스 수업 끝나고 잠깐 얘기했던 희진이 친구 인데요. 다름이 아니라 Critical Section 에서요
    어제 했던 예제중에
    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <fcntl.h>
    #include <errno.h>

    const char *lock_file = "/tmp/LCK.test2";

    main() {
    int file_desc;
    int tries = 10;

    while ( tries--) {
    file_desc = open(lock_file, O_RDWR | O_CREAT | O_EXCL, 0444);
    if (file_desc = -1) {
    printf("%d - Lock already present\n", getpid());
    sleep(3);
    }
    else {
    /* critical region */
    printf("%d - I have exclusive access\n",
    getpid());
    sleep(1);
    (void)close(file_desc);
    (void)unlink(lock_file);
    /* non-critical region */
    sleep(2);
    } /* while */
    printf("Done...\n");
    }
    }

    file_desc = -1 왜 open한 결과가 -1이 되는지 궁금하네요.. 제가 소스를 잘못 구한건지 궁금하네요
    만약 /tmp/LCK.test2 가 존재 하지 않는 상황이면 open은 성공할거 같거든요
    그리고 늦게 실행한 터미널에선 open이 실패 할거 같고요.. 혹시 수업시간에 한 소스코드 있으시면 보내주실수 있으신가요?
    제 메일 주소는 dongwha10@naver.com 입니다.~

    앗 죄송해요 혹시나 보실수도 있을까봐 여기에 한번 남겨봐요~ 이글 보시구 지우시는게 좋을거 같아요 블로그랑 잘 안맞는 글 같아서요 ^.^

| 1 |