Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ustr-import(1) [centos man page]

ustr(1) 						    Ustr String Library, tools							   ustr(1)

NAME
ustr-import - ustr string library import tool SYNOPSIS
ustr-import [--32|--64] [-d][d] [-c] [-b x] [-e 1|0] [-s 1|0] section DESCRIPTION
This tool lets you use the Ustr string library without incuring dependancies on the library itself, so API/ABI compatability is 100% (nothing changes unless you do it) and installing your application doesn't require the library to be pre-installed. OPTIONS
--32 If you installed with multilib, this runs the 32 bit varient (and installs the variable multilib build code as ustr-conf.h). --64 If you installed with multilib, this runs the 64 bit varient (and installs the variable multilib build code as ustr-conf.h). -d Turn debugging on, USTR_ASSERT() now runs code etc. -d Turn extra debugging on, including End of String (EOS) markers that takeup space. Note that you can do -dd to add both at once. -c Use C files, this requires that you alter the build system to compile the C files and link them into your application. The default is to just provide headers that you can just include. -b Specify the default reference count byte size: 0, 1, 2 or 4 (or 8 on 64 bit platforms). Note that 2 bytes is the minimum if you have explicit size storage. -e Specify the default exact sized allocations flag, without this flag allocations are rounded up to the neared half power of two. -s Specify the default explicit size storage flag, without this flag allocations have an implicit size based on their length with it a size value is stored with the string (thus taking significantly larger space for small strings, but this doesn't require reallocating the string when growing and shrinking the string). Note that turning this on also increases the minimum sizes for length and reference count storage. SECTIONS
all All of the following sections are included. b Working with binary numbers in NBO format. cmp Comparing, strcmp() for Ustr's, although the Ustr versions are safer and much faster. cntl Control options dynamically. fmt Formatted output, sprintf() for Ustr's. gdb Copy just the .gdbinit file to the local dir. io Input Output. ins Inserting data. main The core functions, including strcat(), strdup() and delete for Ustr's. Always safer and often much faster. parse Parsing integers, Ie. Nice versions of strtol(). pool A bundled memory pool API, to use with the ustrp functions. replace Replacing all occurances of data. sc Shortcut functions for Ustr's. set Setting data, strcpy() for Ustr's. split Slit the data, strtok() / strsep() for Ustr's. spn Spanning, strspn() / strcspn() for Ustr's. srch Searching, strchr() / strrchr() / strstr() for Ustr's, although the Ustr versions are safer and much faster. sub Substituting data. utf8 Working with UTF8. FILES
/ustr/include/ustr-conf.h /ustr/include/ustr-conf-debug.h In multilib. this is the header to choose the correct conf.h header based on the byte size. /ustr/include/ustr*.h The default "extern" header files. /usr/share/ustr-*/ustr-*-internal.h Internal functions, used the implement the public interfaces. /usr/share/ustr-*/ustr-*-code.h The code behind the public interfaces. /usr/share/ustr-*/ustr-*-code.c The C files, which use the code header files to create objects. /usr/share/ustr-*/.gdbinit The GDB init file containing macros to help inspect Ustr's in the debugger. SEE ALSO
ustr(3),ustr_const(3) ustr-import 1.0.4 03-Aug-2007 ustr(1)

Check Out this Related Man Page

ustr_const(3)							Ustr String Library						     ustr_const(3)

NAME
ustr_const - ustr string library constants SYNOPSIS
#include "ustr.h" USTR_CONF_INCLUDE_CODEONLY_HEADERS USTR_CONF_USE_EOS_MARK USTR_CONF_USE_ASSERT USTR_CONF_COMPILE_USE_ATTRIBUTES USTR_CONF_COMPILE_TYPEDEF USTR_CONF_COMPILE_USE_INLINE USTR_BEG_CONST1 USTR_BEG_CONST2 USTR_BEG_CONST4 USTR_BEG_FIXED1 USTR_BEG_FIXED2 USTR_BEG_FIXED4 USTR_BEG_FIXED8 USTR_END_ALOCDx USTR_END_CONSTx USTR_END_FIXEDx USTR_FLAG_PARSE_NUM_DEF USTR_FLAG_PARSE_NUM_SEP USTR_FLAG_PARSE_NUM_OVERFLOW USTR_FLAG_PARSE_NUM_SPACE USTR_FLAG_PARSE_NUM_NO_BEG_ZERO USTR_FLAG_PARSE_NUM_NO_BEG_PM USTR_FLAG_PARSE_NUM_NO_NEGATIVE USTR_FLAG_PARSE_NUM_EXACT USTR_TYPE_PARSE_NUM_ERR_NONE USTR_TYPE_PARSE_NUM_ERR_ONLY_S USTR_TYPE_PARSE_NUM_ERR_ONLY_SPM USTR_TYPE_PARSE_NUM_ERR_ONLY_SPMX USTR_TYPE_PARSE_NUM_ERR_OOB USTR_TYPE_PARSE_NUM_ERR_OVERFLOW USTR_TYPE_PARSE_NUM_ERR_NEGATIVE USTR_TYPE_PARSE_NUM_ERR_BEG_ZERO USTR_FLAG_SPLIT_DEF USTR_FLAG_SPLIT_RET_SEP USTR_FLAG_SPLIT_RET_NON USTR_FLAG_SPLIT_KEEP_CONFIG USTR_NULL USTR_POOL_NULL USTR_TRUE USTR_FALSE USTR_CNTL_OPT_GET_REF_BYTES USTR_CNTL_OPT_SET_REF_BYTES USTR_CNTL_OPT_GET_HAS_SIZE USTR_CNTL_OPT_SET_HAS_SIZE USTR_CNTL_OPT_GET_EXACT_BYTES USTR_CNTL_OPT_SET_EXACT_BYTES USTR_CNTL_OPT_GET_MEM USTR_CNTL_OPT_SET_MEM USTR_CNTL_OPT_GET_MC_M_SCRUB USTR_CNTL_OPT_SET_MC_M_SCRUB USTR_CNTL_OPT_GET_MC_F_SCRUB USTR_CNTL_OPT_SET_MC_F_SCRUB USTR_CNTL_OPT_GET_MC_R_SCRUB USTR_CNTL_OPT_SET_MC_R_SCRUB USTR_CNTL_OPT_GET_FMT USTR_CNTL_OPT_SET_FMT USTR_POOL_LL_CNTL_GET_FREE_CMP USTR_POOL_LL_CNTL_SET_FREE_CMP USTR_POOL_LL_CNTL_GET_REALLOC USTR_POOL_LL_CNTL_SET_REALLOC DESCRIPTION
Compile switch constants Constant: USTR_CONF_INCLUDE_CODEONLY_HEADERS Explanation: This switch controls whether all the code will be included as inline functions. Having this be non-zero means that you don't have to link against the library. Constant: USTR_CONF_USE_EOS_MARK Explanation: This switch turns on End of String markers, so any bounds overflow will be noticed by ustr_assert_valid(). Note: Changing this will not do anything useful unless USTR_CONF_INCLUDE_CODEONLY_HEADERS is non-zero. Constant: USTR_CONF_USE_ASSERT Explanation: This switch turns USTR_ASSERT() calls on, so the code within them will be evaluated. Note that there are many calls to ustr_assert_valid() within USTR_ASSERT() macros and that call is relatively expensive. Note: Changing this will not do anything useful unless USTR_CONF_INCLUDE_CODEONLY_HEADERS is non-zero. Constant: USTR_CONF_COMPILE_USE_ATTRIBUTES Explanation: This switch controls whether gcc type __attribute__() statements are used in the public headers headers for the library. If the value is 1 then if they are supported by the compiler that built the library they will be used, if the value is 0 they won't be used at all. Constant: USTR_CONF_COMPILE_TYPEDEF Explanation: This switch controls whether typedef will be used for the structs in the public headers for the library. If the value is 1 then they will be used, if the value is 0 they won't be used at all (and your code will have to use struct tags instead -- note all libraries using ustr should compile without this option set). Constant: USTR_CONF_COMPILE_USE_INLINE Explanation: This switch controls whether inline functions will be used in a few cases where the function bodies are very small. Note: In some cases this is used so that GCC can eliminate calls to strlen(), for the *_cstr() functions. Constants to created fixed/read-only Ustr's Constant: USTR_BEG_CONST1 Explanation: This macro is a constant C-style string of the first byte of a constant/read-only Ustr that has a length in the range 0-255. Constant: USTR_BEG_CONST2 Explanation: This macro is a constant C-style string of the first byte of a constant/read-only Ustr that has a length in the range 0-65535. Constant: USTR_BEG_CONST4 Explanation: This macro is a constant C-style string of the first byte of a constant/read-only Ustr that has a length in the range 0-4294967295. Constant: USTR_BEG_FIXED1 Explanation: This macro is a constant C-style string of the first byte of a fixed Ustr that has a length in the range 0-255. Constant: USTR_BEG_FIXED2 Explanation: This macro is a constant C-style string of the first byte of a fixed Ustr that has a length in the range 0-65535. Constant: USTR_BEG_FIXED4 Explanation: This macro is a constant C-style string of the first byte of a fixed Ustr that has a length in the range 0-4294967295. Constant: USTR_BEG_FIXED8 Explanation: This macro is a constant C-style string of the first byte of a fixed Ustr that has a length in the range 0-18446744073709551615. Note: This macro is only available if the Ustr code was compiled in a 64bit environment. Constant: USTR_END_ALOCDx Explanation: This macro is a constant C-style string of the last bytes of an allocated Ustr. Note: Unless USTR_CONF_USE_EOS_MARK is non-zero, this is just the NIL byte. Constant: USTR_END_CONSTx Explanation: This macro is a constant C-style string of the last bytes of a constant/read-only Ustr. Note: Unless USTR_CONF_USE_EOS_MARK is non-zero, this is just the NIL byte. Constant: USTR_END_FIXEDx Explanation: This macro is a constant C-style string of the last bytes of a fixed Ustr. Note: Unless USTR_CONF_USE_EOS_MARK is non-zero, this is just the NIL byte. Constants to use with parsing numbers: ustr_parse_uintmaxx, etc. Constant: USTR_FLAG_PARSE_NUM_DEF Explanation: Default flags, this is merely 0 but can be used as live documentation. Constant: USTR_FLAG_PARSE_NUM_SEP Explanation: This flag allows the parsing (and ignoring) of the separator character, at arbitrary pointers in the number, so "1234" and "1_234" would both parse the same (assuming "_" is the separator). Constant: USTR_FLAG_PARSE_NUM_OVERFLOW Explanation: This flag turns on the overflow checking, in other words without it USTR_TYPE_PARSE_NUM_ERR_OVERFLOW will never be returned as an error code. Constant: USTR_FLAG_PARSE_NUM_SPACE Explanation: This flag allows one or more ' ' (Space) characters before the number or number prefix (Plus Sign, Hyphen). Note: Other forms of whitespace don't count, this just affects ' '. Constant: USTR_FLAG_PARSE_NUM_NO_BEG_ZERO Explanation: This flag disallows one or more '0' (Digit Zero) characters before the number. Constant: USTR_FLAG_PARSE_NUM_NO_BEG_PM Explanation: This flag disallows a plus or a minus character before the number. Constant: USTR_FLAG_PARSE_NUM_NO_NEGATIVE Explanation: This flag disallows negative values. Constant: USTR_FLAG_PARSE_NUM_EXACT Explanation: This flag makes the parsing functions return an error if the entire string doesn't contain the number being parsed. Constant: USTR_TYPE_PARSE_NUM_ERR_NONE Explanation: This error code has the value 0, and means that no error occurred parsing the number. Constant: USTR_TYPE_PARSE_NUM_ERR_ONLY_S Explanation: This error code means that the Ustr string consisted only of spaces. Constant: USTR_TYPE_PARSE_NUM_ERR_ONLY_SPM Explanation: This error code means that the Ustr string consisted only spaces, and a plus or minus sign. Constant: USTR_TYPE_PARSE_NUM_ERR_ONLY_SPMX Explanation: This error code means that the Ustr string consisted of only spaces, a plus or minus sign and a "0x" base 16 prefix. Constant: USTR_TYPE_PARSE_NUM_ERR_OOB Explanation: This error code means that the Ustr string had characters in it that where out of bounds from the working base. Note: Without the USTR_FLAG_PARSE_NUM_EXACT, this error is ignored as soon as any number is parsed. This out of bounds includes the Ustr string "++" as well as "4A", when parsing in a base less than 11. Constant: USTR_TYPE_PARSE_NUM_ERR_OVERFLOW Explanation: This error code means that the number parsed from the Ustr string would overflow the type it is being parsed into, this is only returned when the USTR_FLAG_PARSE_NUM_OVERFLOW flag was passed to the parse function. Constant: USTR_TYPE_PARSE_NUM_ERR_NEGATIVE Explanation: This error code means that the number parsed from the Vstr string starts with a '-' (Hyphen) character when it is supposed to be an unsigned number. Constant: USTR_TYPE_PARSE_NUM_ERR_BEG_ZERO Explanation: This error code means that the number parsed from the Vstr string starts with a '0' (Digit Zero) character, when the USTR_FLAG_PARSE_NUM_NO_BEG_ZERO flag was passed to the parse function. Constants to pass to ustr_split* Constant: USTR_FLAG_SPLIT_DEF Explanation: Default flags, this is merely 0 but can be used as live documentation. Constant: USTR_FLAG_SPLIT_RET_SEP Explanation: Return the separator along with the tokens. For example splitting "a,b," using separator "," will return the tokens "a," and "b," whereas without this flag only "a" and "b" would be returned. .br Constant: USTR_FLAG_SPLIT_RET_NON Explanation: Return empty tokens. For example: splitting "a,,b" with separator "," will return the tokens {"a" "" "b"}. Constant: USTR_FLAG_SPLIT_KEEP_CONFIG Explanation: Force the returned Ustr's to have same configuration parameters as the Ustr string that is being split. Misc constants to use in code Constant: USTR_NULL Explanation: This macro is merely 0 cast to (struct Ustr *), and can be used anywhere NULL would be but "returns" the correct type. Constant: USTR_POOL_NULL Explanation: This macro is merely 0 cast to (struct Ustr_pool *), and can be used anywhere NULL would be but "returns" the correct type. Constant: USTR_TRUE Explanation: This macro is 1, but shows the intent that a boolean value is expected and not a number. Constant: USTR_FALSE Explanation: This macro is 0, but shows the intent that a boolean value is expected and not a number. Constants passed to ustr_cntl_opt() Constant: USTR_CNTL_OPT_GET_REF_BYTES Parameter[1]: Number of bytes for default reference count in Ustr Type[1]: size_t * Explanation: This option will get the default number of bytes used for a reference count when creating Ustr's. Constant: USTR_CNTL_OPT_SET_REF_BYTES Parameter[1]: Number of bytes for default reference count in Ustr Type[1]: size_t Explanation: This option will set the default number of bytes used for a reference count when creating Ustr's. Note: For a single instance, the ustr_dupx_*() functions can be used. Constant: USTR_CNTL_OPT_GET_HAS_SIZE Parameter[1]: Default flag for whether to include an explicit size in a Ustr Type[1]: int * Explanation: This option will get the default flag for whether to store an explicit size in created Ustr's. Constant: USTR_CNTL_OPT_SET_HAS_SIZE Parameter[1]: Default flag for whether to include an explicit size in a Ustr Type[1]: int Explanation: This option will set the default flag for whether to store an explicit size in created Ustr's. Note: For a single instance, the ustr_dupx_*() functions can be used. Constant: USTR_CNTL_OPT_GET_EXACT_BYTES Parameter[1]: Default flag for whether to exactly allocate memory Type[1]: int * Explanation: This option will get the default flag for whether to exactly allocate memory when a Ustr needs to be resized. Constant: USTR_CNTL_OPT_SET_EXACT_BYTES Parameter[1]: Default flag for whether to exactly allocate memory Type[1]: int Explanation: This option will set the default flag for whether to exactly allocate memory when a Ustr needs to be resized. Note: For a single instance, the ustr_dupx_*() functions can be used. Constant: USTR_CNTL_OPT_GET_MEM Parameter[1]: Pointer to colleciton of function pointers for system allocation Type[1]: struct Ustr_cntl_mem * Explanation: This option will get the "system" allocation functions (malloc, realloc, free) for allocated Ustr's. Note: As you would expect the default values are: malloc, realloc, free. Constant: USTR_CNTL_OPT_SET_MEM Parameter[1]: Pointer to colleciton of function pointers for system allocation Type[1]: const struct Ustr_cntl_mem * Explanation: This option will set the "system" allocation functions (malloc, realloc, free) for allocated Ustr's. Note: If this option is set after a Ustr has been created, then when freeing or reallocating the existing Ustr the given functions will be used. So they must either be compatible with the default or you must ensure that nothing is allocated before they are set. Constant: USTR_CNTL_OPT_GET_MC_M_SCRUB Parameter[1]: Flag for whether to include an explicit size in a Ustr Type[1]: int * Explanation: This option will get the flag for whether to "scrub" data allocated via. malloc check. Note: Malloc check has to be enabled for this to mean anything, Ie. USTR_CNTL_MALLOC_LVL() must be positive. Constant: USTR_CNTL_OPT_SET_MC_M_SCRUB Parameter[1]: Flag for whether to include an explicit size in a Ustr Type[1]: int Explanation: This option will set the flag for whether to "scrub" data allocated via. malloc check. Note: Malloc check has to be enabled for this to mean anything, Ie. USTR_CNTL_MALLOC_LVL() must be positive. Constant: USTR_CNTL_OPT_GET_MC_F_SCRUB Parameter[1]: Flag for whether to include an explicit size in a Ustr Type[1]: int * Explanation: This option will get the flag for whether to "scrub" data freed via. malloc check. Note: Malloc check has to be enabled for this to mean anything, Ie. USTR_CNTL_MALLOC_LVL() must be positive. Constant: USTR_CNTL_OPT_SET_MC_F_SCRUB Parameter[1]: Flag for whether to include an explicit size in a Ustr Type[1]: int Explanation: This option will set the flag for whether to "scrub" data freed via. malloc check. Note: Malloc check has to be enabled for this to mean anything, Ie. USTR_CNTL_MALLOC_LVL() must be positive. Constant: USTR_CNTL_OPT_GET_MC_R_SCRUB Parameter[1]: Flag for whether to include an explicit size in a Ustr Type[1]: int * Explanation: This option will get the flag for whether to "scrub" data reallocated via. malloc check. This is done by turning all reallocations into a malloc() and free(), and so is even more costly than normal scrubbing. Note: Malloc check has to be enabled for this to mean anything, Ie. USTR_CNTL_MALLOC_LVL() must be positive. Constant: USTR_CNTL_OPT_SET_MC_R_SCRUB Parameter[1]: Flag for whether to include an explicit size in a Ustr Type[1]: int Explanation: This option will set the flag for whether to "scrub" data reallocated via. malloc check. This is done by turning all reallocations into a malloc() and free(), and so is even more costly than normal scrubbing. Note: Malloc check has to be enabled for this to mean anything, Ie. USTR_CNTL_MALLOC_LVL() must be positive. Constant: USTR_CNTL_OPT_GET_FMT Parameter[1]: Pointer to colleciton of function pointers for system formating Type[1]: struct Ustr_cntl_fmt * Explanation: This option will get the system formatting functions (vsnprintf) for Ustr's. There are two functions, the first is always called and the second is likely called (always with the exact same arguments) if the length passed to the first call was not big enough. Note: As you would expect the default values are: vsnprintf and vsnprintf Constant: USTR_CNTL_OPT_SET_FMT Parameter[1]: Pointer to colleciton of function pointers for system formatting Type[1]: const struct Ustr_cntl_fmt * Explanation: This option will set the system formatting functions (vsnprintf) for Ustr's. Constants passed to ustr_pool_ll_cntl() Constant: USTR_POOL_LL_CNTL_GET_FREE_CMP Parameter[1]: Number of pointers to compare to in the pool Type[1]: unsigned int * Explanation: This option will get the number of comparisons done on a pool free operation. Constant: USTR_POOL_LL_CNTL_SET_FREE_CMP Parameter[1]: Number of pointers to compare to in the pool Type[1]: unsigned int Explanation: This option will set the number of comparisons done on a pool free operation. Note: The default is a small non-zero value, as it's significantly common to have very short lived ustr's ... however this doesn't mean that you can't forget to take references even with pool allocated ustrs. Constant: USTR_POOL_LL_CNTL_GET_REALLOC Parameter[1]: Flag for if we should call realloc() Type[1]: int * Explanation: This option will get the flag for if we call realloc() to make data bigger, or revert to just allocating anew each time. Constant: USTR_POOL_LL_CNTL_SET_REALLOC Parameter[1]: Flag for if we should call realloc() Type[1]: int Explanation: This option will set the flag for if we call realloc() to make data bigger, or revert to just allocating anew each time. Note: As with USTR_POOL_LL_CNTL_SET_FREE_CMP this option means you can't assume that pool allocated data is never freed until ustr_pool_free() is called, and again it is due to there being significant speed improvements for not making that assumption. Instead of disabling this option, just take areference (which will also make sure the ustr isn't modified behind your back). SEE ALSO
ustr(3) Ustr 1.0.4 05-Mar-2008 ustr_const(3)
Man Page