other sections
FTOK(3) | 리눅스 프로그래머 매뉴얼 | 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) 장치 번호를 분간할 수 없기 때문에, 여러 개의 디스크 제어 장치를 가지는 시스템에서도 역시 이런 충돌이 일어날 수 있다.
관련 항목¶
역자¶
정동현 <dhjung@serome.co.kr>, 2000년 4월 21일
1993년 11월 1일 | 리눅스 0.99.13 |