GPERF(1)

명칭
gperf - 키의 집합으로부터 완전한 해쉬 함수를 생성한다

서식
gperf [OPTION]... [INPUT-FILE]

해설
GNU `gperf' 는, 완전한 해쉬 함수를 생성합니다.

긴 옵션에 인수가 필수이라고 가리키고 있는 경우, 등가의 짧은 옵션도 인수는 필수입니다.

  입력 파일의 해석

-e, --delimiters=DELIMITER-LIST
    딜리미터를 포함한 캐릭터 라인을 지정합니다. 딜리미터는, 키워드와 속성을 분리하기 위해서(때문에) 사용됩니다. 디폴트는 ", \n" 입니다.

-t, --struct-type
    구조체의 형태 선언을, 생성 코드중에 포함합니다. %% 보다 전의 모든 텍스트는, 형태 선언으로 간주해집니다. 키워드와 추가의 필드를, 한덩어리에 1 행으로 해, 이 후에 잇습니다.

  출력 코드 용언어

-L, --language=LANGUAGE-NAME
    지정한 언어로 코드를 생성합니다. 현재 사용 가능한 언어는, C++, ANSI-C, C, KR-C 입니다. 디폴트는 C 입니다.

  출력 코드의 상세

-K, --slot-name=NAME
    키워드 구조 체내의 키워드 요소의 이름을 선택합니다.

-F, --initializer-suffix=INITIALIZERS
    키워드 구조 체내의 추가 요소를, 이것으로 초기 합니다.

-H, --hash-fn-name=NAME
    생성되는 해쉬 함수의 이름을 지정합니다. 디폴트는 `hash'입니다.

-N, --lookup-fn-name=NAME
    생성되는 검색 함수의 이름을 지정합니다. 디폴트는 `in_word_set'입니다.

-Z, --class-name=NAME
    생성되는 C++ 클래스의 이름을 지정합니다. 디폴트명은 `Perfect_Hash'입니다.

-7, --seven-bit
    7 비트 캐릭터를 가정합니다.

-c, --compare-strncmp
    strcmp 대신에 strncmp 를 사용하는, 비교 코드를 생성합니다.

-C, --readonly-tables
    생성되는 검색표를 정수, 즉 읽어내 전용으로 합니다.

-E, --enum
    define 대신에 enum 형 로컬을 사용해, 검색 함수용의 정수치를 정의합니다.

-I, --includes
    필요한 시스템 인클루드 파일 <string.h> 을, 코드의 선두에서 인클루드 합니다.

-G, --global
    키워드의 정적인 겉(표)를, 검색 함수중에 숨기는 (이것이 디폴트 동작입니다)대신에, 정적인 광역 변수로서 생성합니다.

-W, --word-array-name=NAME
    단어 일람 배열의 이름을 지정합니다. 디폴트명은 `wordlist'입니다.

-S, --switch=COUNT
    생성되는 C 코드에, 배열 검색표대신에, switch 문 방식을 사용시킵니다. 키파일에 따라서는, 시간과 공간의 삭감이 됩니다. COUNT 인수는, 생성되는 switch 문의 수를 지정합니다. 값 1 에서는 모든 요소를 포함한 switch 를 1 개 생성해, 값 2 에서는 겉(표)의 반의 요소를 포함한 switch 를 2 개 생성해, 등이 됩니다. COUNT 가 매우 큰 경우, 예를 들면 1000000 의 경우, 생성되는 C 코드는 2분 검색을 실시합니다.

-T, --omit-struct-type
    형태 선언이 출력 파일에 전송 되는 것을 막습니다. 형태가 다른 어디선가 정의되고 있는 경우에, 본옵션을 사용합니다.

  gperf 가 사용하는 알고리즘

-k, --key-positions=KEYS
    해쉬 함수가 사용하는 키의 장소를 선택합니다. 선택이 용서되는 범위는 1-126 의 범위에서, 양단을 포함합니다. 위치는 콤마로 단락지어, 범위를 지정 가능하고, 키 위치의 순서는 임의입니다. 또, 메타 캐릭터 '*'는, 생성되는 해쉬 함수에 모든 키 위치를 고려시켜,$ 는 ``마지막 캐릭터''를 의미합니다. 예는 $,1,2,4,6-10 입니다.

-l, --compare-strlen
    캐릭터 라인 비교 전에, 키의 길이를 비교합니다. 이것에 의해, 검색중의 캐릭터 라인 비교 회수를 삭감합니다.

-D, --duplicates
    중복 하는 값에 해시 되는 키워드를 취급합니다. 매우 장황한 키워드 집합을 취급하는 경우에 유용합니다.

-f, --fast=ITERATIONS
    gen-perf.hash 함수를 ``고속''에 생성합니다. gperf 의 실행 시간을 삭감합니다만, 생성되는 표의 크기의 최소화를 희생합니다. 수치 인수는, 충돌 해결시의 반복수를 표현합니다. `0'는,``키워드수만큼 반복하는''일을 의미합니다.

-i, --initial-asso=N
    관련지을 수 있었던 값의 배열에 초기치를 줍니다. 기본값은 0 입니다. 이 값을 크게 하면(자), 최종적인 겉(표)를 크게 합니다.

-j, --jump=JUMP-VALUE
    ``점프치'', 즉 캐릭터를 관련지을 수 있었던 값을, 충돌시에 얼마나 진행하는지를 지정합니다. 홀수인 것이 필요하고, 디폴트는 5 입니다.

-n, --no-strlen
    해쉬 함수의 계산에 키워드장을 포함하지 않습니다.

-o, --occurrence-sort
    키 집합중에서의 출현 빈도로, 입력 키를 줄서 바꿉니다. 검색 시간을 극적으로 삭감할 것입니다.

-r, --random
    관련지을 수 있었던 값의 겉(표)의 초기화에 랜덤성을 이용합니다.

-s, --size-multiple=N
    생성되는 해시표의 크기를 바꿉니다. 수치 인수 N 는, 관련지을 수 있었던 값의 범위가, 입력 키의 수와 비교해 ``몇배 큰 또는 작은''군령을 가리킵니다. 예를 들면, 수치 3 은, ``관련지을 수 있었던 값의 최대치는, 입력 키수의 약 3 배의 크기를 허락하는'' 일을 의미합니다. 반대로, 값 -3 는, ``관련지을 수 있었던 값의 최대치를, 입력 키수의 약 1/3 에 작게 하는'' 일을 의미합니다. 겉(표)가 커지면(자), 검색 실패시의 시간을 삭감합니다만, 겉(표)를 위한 불필요한 공간이 희생이 됩니다. 기본값은 1 입니다.

  정보로서의 출력

-h, --help
    이 메세지를 표시합니다.

-v, --version
    gperf 의 버젼 번호를 표시합니다.

-d, --debug
    디버그 옵션을 유효하게 합니다 (장황한 출력을 표준 에러에 생성합니다).

버그 리포트
버그는 <bug-gnu-utils@gnu.org> 에 보고해 주세요.

관련 항목
gperf 의 완전한 문서는 Texinfo 메뉴얼로 관리되고 있습니다. info 및 gperf 의 프로그램이 당신의 사이트에서 적절히 인스톨 되고 있으면, 명령

    info gperf

그리고 완전한 메뉴얼에 액세스 가능합니다.