The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Интерактивная система просмотра системных руководств (man-ов)

 [Cписок руководств | Печать]

gperf (1)
  • gperf (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • >> gperf (1) ( Linux man: Команды и прикладные программы пользовательского уровня )


    gperf - generate a perfect hash function from a key set


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


    GNU `gperf' generates perfect hash functions.

    If a long option shows an argument as mandatory, then it is mandatory for the equivalent short option also.  

    Input file interpretation:

    -e, --delimiters=DELIMITER-LIST
    Allow user to provide a string containing delimiters used to separate keywords from their attributes. Default is ",\n".
    -t, --struct-type
    Allows the user to include a structured type declaration for generated code. Any text before %% is considered part of the type declaration. Key words and additional fields may follow this, one group of fields per line.

    Language for the output code:

    -L, --language=LANGUAGE-NAME
    Generates code in the specified language. Languages handled are currently C++, ANSI-C, C, and KR-C. The default is C.

    Details in the output code:

    -K, --slot-name=NAME
    Select name of the keyword component in the keyword structure.
    -F, --initializer-suffix=INITIALIZERS
    Initializers for additional components in the keyword structure.
    -H, --hash-fn-name=NAME
    Specify name of generated hash function. Default is `hash'.
    -N, --lookup-fn-name=NAME
    Specify name of generated lookup function. Default name is `in_word_set'.
    -Z, --class-name=NAME
    Specify name of generated C++ class. Default name is `Perfect_Hash'.
    -7, --seven-bit
    Assume 7-bit characters.
    -c, --compare-strncmp
    Generate comparison code using strncmp rather than strcmp.
    -C, --readonly-tables
    Make the contents of generated lookup tables constant, i.e., readonly.
    -E, --enum
    Define constant values using an enum local to the lookup function rather than with defines.
    -I, --includes
    Include the necessary system include file <string.h> at the beginning of the code.
    -G, --global
    Generate the static table of keywords as a static global variable, rather than hiding it inside of the lookup function (which is the default behavior).
    -W, --word-array-name=NAME
    Specify name of word list array. Default name is `wordlist'.
    -S, --switch=COUNT
    Causes the generated C code to use a switch statement scheme, rather than an array lookup table. This can lead to a reduction in both time and space requirements for some keyfiles. The COUNT argument determines how many switch statements are generated. A value of 1 generates 1 switch containing all the elements, a value of 2 generates 2 tables with 1/2 the elements in each table, etc. If COUNT is very large, say 1000000, the generated C code does a binary search.
    -T, --omit-struct-type
    Prevents the transfer of the type declaration to the output file. Use this option if the type is already defined elsewhere.

    Algorithm employed by gperf:

    -k, --key-positions=KEYS
    Select the key positions used in the hash function. The allowable choices range between 1-126, inclusive. The positions are separated by commas, ranges may be used, and key positions may occur in any order. Also, the meta-character '*' causes the generated hash function to consider ALL key positions, and $ indicates the ``final character'' of a key, e.g., $,1,2,4,6-10.
    -l, --compare-strlen
    Compare key lengths before trying a string comparison. This helps cut down on the number of string comparisons made during the lookup.
    -D, --duplicates
    Handle keywords that hash to duplicate values. This is useful for certain highly redundant keyword sets.
    -f, --fast=ITERATIONS
    Generate the gen-perf.hash function ``fast''. This decreases gperf's running time at the cost of minimizing generated table size. The numeric argument represents the number of times to iterate when resolving a collision. `0' means ``iterate by the number of keywords''.
    -i, --initial-asso=N
    Provide an initial value for the associate values array. Default is 0. Setting this value larger helps inflate the size of the final table.
    -j, --jump=JUMP-VALUE
    Affects the ``jump value'', i.e., how far to advance the associated character value upon collisions. Must be an odd number, default is 5.
    -n, --no-strlen
    Do not include the length of the keyword when computing the hash function.
    -o, --occurrence-sort
    Reorders input keys by frequency of occurrence of the key sets. This should decrease the search time dramatically.
    -r, --random
    Utilizes randomness to initialize the associated values table.
    -s, --size-multiple=N
    Affects the size of the generated hash table. The numeric argument N indicates ``how many times larger or smaller'' the associated value range should be, in relationship to the number of keys, e.g. a value of 3 means ``allow the maximum associated value to be about 3 times larger than the number of input keys.'' Conversely, a value of -3 means ``make the maximum associated value about 3 times smaller than the number of input keys. A larger table should decrease the time required for an unsuccessful search, at the expense of extra table space. Default value is 1.

    Informative output:

    -h, --help
    Print this message.
    -v, --version
    Print the gperf version number.
    -d, --debug
    Enables the debugging option (produces verbose output to the standard error).


    Report bugs to <>.  


    The full documentation for gperf is maintained as a Texinfo manual. If the info and gperf programs are properly installed at your site, the command
    info gperf

    should give you access to the complete manual.



    Input file interpretation:
    Language for the output code:
    Details in the output code:
    Algorithm employed by gperf:
    Informative output:

    Поиск по тексту MAN-ов: 

      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    Hosting by Ihor