'ftok'에 해당되는 글 1건

  1. 2017.11.29 ftok

ftok

programming/C_C++ 2017. 11. 29. 17:34
반응형

리눅스 프로그래머 매뉴얼  - FTOK(3)

이름
       ftok - 경로와 프로젝트 식별자를 시스템 V IPC 키 값으로 변환한다.

사용법
       # include <sys/types.h>
       # include <sys/ipc.h>

       key_t ftok ( char *pathname, char proj )

설명
       이 함수는 접근 가능하고 실제로 존재하는 파일의 경로와 프로젝트 식별자를 key_t 타입의 시스템 V IPC 키 값으로 변환한다.

반환 값
       성공적인 경우에는 정상적으로 변환된 key_t 값을, 그렇지 않으면 -1 을 반환하고 stat(2) 시스템 콜에 관한 에러를 표시하기 위해 errno 값을 설정한다.

버그
       변환한 key_t 값은 pathname의 i-node 번호와
       디스크 파일이 위치한 파일 시스템의부(minor) 장치 번호를 얻기 위해 pathname에부합하는 디스크 파일의 상태를 저장하고 있다.
       따라서 이 값은 i-node 번호의 하위 16비트와, 부 장치 번호의 8비트 그리고 proj 값의 8비트를 조합해서 만든다.
       그러므로 이 알고리즘은 유일한 키값을 보장할 수 없다. 실제로

       ·같은 파일에 링크된 서로 다른 이름의 파일은 같은 키 값을 생성한다.

       ·드문 경우이지만, i-node 번호의 하위 16비트를 사용하기때문에, 서로 다른 i-node를 가지는 파일이 서로 같은 키 값을 가지는 경우가 있다.

       ·드문 경우이지만, 주(major) 장치 번호를 분간할 수 없기 때문에, 여러 개의 디스크 제어 장치를 가지는 시스템에서도 역시 이런충돌이 일어날 수 있다.

관련 항목
       ipc(5), msgget(2), semget(2), shmget(2), stat(2).

반응형
Posted by 공간사랑
,