# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2013-09-28 04:06+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: build/C/man3/__setfpucw.3:8 #, no-wrap msgid "__SETFPUCW" msgstr "" #. type: TH #: build/C/man3/__setfpucw.3:8 #, no-wrap msgid "2012-12-31" msgstr "" #. type: TH #: build/C/man3/__setfpucw.3:8 build/C/man3/queue.3:39 #, no-wrap msgid "Linux" msgstr "" #. type: TH #: build/C/man3/__setfpucw.3:8 build/C/man3/addseverity.3:9 build/C/man3/argz_add.3:10 build/C/man3/backtrace.3:27 build/C/man3/basename.3:27 build/C/man3/envz_add.3:10 build/C/man3/ftok.3:29 build/C/man3/longjmp.3:27 build/C/man3/offsetof.3:28 build/C/man3/program_invocation_name.3:24 build/C/man3/queue.3:39 build/C/man3/realpath.3:28 build/C/man3/setjmp.3:27 build/C/man3/xcrypt.3:13 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:9 build/C/man3/addseverity.3:10 build/C/man3/argz_add.3:11 build/C/man3/backtrace.3:28 build/C/man3/basename.3:28 build/C/man3/envz_add.3:11 build/C/man3/ftok.3:30 build/C/man3/longjmp.3:28 build/C/man3/offsetof.3:29 build/C/man3/program_invocation_name.3:25 build/C/man3/queue.3:40 build/C/man3/realpath.3:29 build/C/man3/setjmp.3:28 build/C/man3/xcrypt.3:14 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:11 msgid "__setfpucw - set FPU control word on i386 architecture (obsolete)" msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:11 build/C/man3/addseverity.3:12 build/C/man3/argz_add.3:15 build/C/man3/backtrace.3:31 build/C/man3/basename.3:30 build/C/man3/envz_add.3:14 build/C/man3/ftok.3:32 build/C/man3/longjmp.3:30 build/C/man3/offsetof.3:31 build/C/man3/program_invocation_name.3:28 build/C/man3/queue.3:48 build/C/man3/realpath.3:31 build/C/man3/setjmp.3:30 build/C/man3/xcrypt.3:16 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:13 msgid "B<#include Ei386/fpu_control.hE>" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:15 msgid "BIB<);>" msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:15 build/C/man3/addseverity.3:27 build/C/man3/argz_add.3:51 build/C/man3/backtrace.3:50 build/C/man3/basename.3:38 build/C/man3/envz_add.3:36 build/C/man3/ftok.3:39 build/C/man3/longjmp.3:46 build/C/man3/offsetof.3:37 build/C/man3/program_invocation_name.3:36 build/C/man3/queue.3:86 build/C/man3/realpath.3:51 build/C/man3/setjmp.3:49 build/C/man3/xcrypt.3:24 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:22 msgid "" "B<__setfpucw>() transfers I to the registers of the FPU " "(floating-point unit) on the i386 architecture. This was used to control " "floating-point precision, rounding and floating-point exceptions." msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:22 build/C/man3/addseverity.3:60 build/C/man3/argz_add.3:198 build/C/man3/backtrace.3:143 build/C/man3/basename.3:129 build/C/man3/envz_add.3:118 build/C/man3/ftok.3:70 build/C/man3/longjmp.3:90 build/C/man3/offsetof.3:63 build/C/man3/program_invocation_name.3:56 build/C/man3/queue.3:485 build/C/man3/realpath.3:137 build/C/man3/setjmp.3:88 #, no-wrap msgid "CONFORMING TO" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:24 msgid "This function was a nonstandard GNU extension." msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:24 build/C/man3/addseverity.3:67 build/C/man3/backtrace.3:145 build/C/man3/basename.3:131 build/C/man3/ftok.3:72 build/C/man3/longjmp.3:95 build/C/man3/program_invocation_name.3:59 build/C/man3/realpath.3:144 build/C/man3/setjmp.3:93 #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:43 msgid "" "As of glibc 2.1 this function does not exist anymore. There are new " "functions from C99, with prototypes in Ifenv.hE>, to control FPU " "rounding modes, like B(3), B(3), and the " "floating-point environment, like B(3), B(3), " "B(3), B(3), and FPU exception handling, like " "B(3), B(3), B(3), " "B(3), and B(3)." msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:51 msgid "" "If direct access to the FPU control word is still needed, the B<_FPU_GETCW> " "and B<_FPU_SETCW> macros from Ifpu_control.hE> can be used." msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:51 build/C/man3/backtrace.3:167 build/C/man3/basename.3:164 build/C/man3/envz_add.3:121 build/C/man3/offsetof.3:65 #, no-wrap msgid "EXAMPLE" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:53 msgid "B<__setfpucw(0x1372)>" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:55 msgid "Set FPU control word on the i386 architecture to" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:57 #, no-wrap msgid " - extended precision\n" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:59 #, no-wrap msgid " - rounding to nearest\n" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:61 #, no-wrap msgid " - exceptions on overflow, zero divide and NaN\n" msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:61 build/C/man3/addseverity.3:70 build/C/man3/argz_add.3:204 build/C/man3/backtrace.3:251 build/C/man3/basename.3:177 build/C/man3/envz_add.3:143 build/C/man3/ftok.3:101 build/C/man3/longjmp.3:132 build/C/man3/program_invocation_name.3:63 build/C/man3/realpath.3:226 build/C/man3/setjmp.3:126 build/C/man3/xcrypt.3:72 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:63 msgid "B(3)" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:65 msgid "Ifpu_control.hE>" msgstr "" #. type: SH #: build/C/man3/__setfpucw.3:65 build/C/man3/addseverity.3:72 build/C/man3/argz_add.3:206 build/C/man3/backtrace.3:256 build/C/man3/basename.3:180 build/C/man3/envz_add.3:145 build/C/man3/ftok.3:107 build/C/man3/longjmp.3:135 build/C/man3/offsetof.3:105 build/C/man3/program_invocation_name.3:65 build/C/man3/queue.3:491 build/C/man3/realpath.3:232 build/C/man3/setjmp.3:129 build/C/man3/xcrypt.3:74 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: build/C/man3/__setfpucw.3:72 build/C/man3/addseverity.3:79 build/C/man3/argz_add.3:213 build/C/man3/backtrace.3:263 build/C/man3/basename.3:187 build/C/man3/envz_add.3:152 build/C/man3/ftok.3:114 build/C/man3/longjmp.3:142 build/C/man3/offsetof.3:112 build/C/man3/program_invocation_name.3:72 build/C/man3/queue.3:498 build/C/man3/realpath.3:239 build/C/man3/setjmp.3:136 build/C/man3/xcrypt.3:81 msgid "" "This page is part of release 3.54 of the Linux I project. A " "description of the project, and information about reporting bugs, can be " "found at \\%http://www.kernel.org/doc/man-pages/." msgstr "" #. type: TH #: build/C/man3/addseverity.3:9 #, no-wrap msgid "ADDSEVERITY" msgstr "" #. type: TH #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27 #, no-wrap msgid "2008-06-14" msgstr "" #. type: TH #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27 build/C/man3/basename.3:27 build/C/man3/ftok.3:29 build/C/man3/offsetof.3:28 build/C/man3/program_invocation_name.3:24 #, no-wrap msgid "GNU" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:12 msgid "addseverity - introduce new severity classes" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:16 #, no-wrap msgid "B<#include Efmtmsg.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:18 #, no-wrap msgid "BIB<, const char *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:23 build/C/man3/longjmp.3:42 build/C/man3/realpath.3:42 build/C/man3/setjmp.3:42 msgid "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:27 msgid "B(): _SVID_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:49 msgid "" "This function allows the introduction of new severity classes which can be " "addressed by the I argument of the B(3) function. By " "default that latter function only knows how to print messages for severity " "0-4 (with strings (none), HALT, ERROR, WARNING, INFO). This call attaches " "the given string I to the given value I. If I is NULL, the " "severity class with the numeric value I is removed. It is not " "possible to overwrite or remove one of the default severity classes. The " "severity value must be nonnegative." msgstr "" #. type: SH #: build/C/man3/addseverity.3:49 build/C/man3/argz_add.3:192 build/C/man3/backtrace.3:118 build/C/man3/basename.3:121 build/C/man3/envz_add.3:112 build/C/man3/ftok.3:61 build/C/man3/longjmp.3:88 build/C/man3/offsetof.3:56 build/C/man3/realpath.3:91 build/C/man3/setjmp.3:78 build/C/man3/xcrypt.3:61 #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:57 msgid "" "Upon success, the value B is returned. Upon error, the return value " "is B. Possible errors include: out of memory, attempt to remove a " "nonexistent or default severity class." msgstr "" #. type: SH #: build/C/man3/addseverity.3:57 build/C/man3/backtrace.3:137 build/C/man3/realpath.3:135 build/C/man3/xcrypt.3:67 #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:60 msgid "B() is provided in glibc since version 2.1." msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:67 msgid "" "This function is not specified in the X/Open Portability Guide although the " "B(3) function is. It is available on System V systems." msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:70 msgid "" "New severity classes can also be added by setting the environment variable " "B." msgstr "" #. type: Plain text #: build/C/man3/addseverity.3:72 msgid "B(3)" msgstr "" #. type: TH #: build/C/man3/argz_add.3:10 #, no-wrap msgid "ARGZ_ADD" msgstr "" #. type: TH #: build/C/man3/argz_add.3:10 build/C/man3/envz_add.3:10 #, no-wrap msgid "2007-05-18" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:15 msgid "" "argz_add, argz_add_sep, argz_append, argz_count, argz_create, " "argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, " "argz_replace, argz_stringify - functions to handle an argz list" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:18 #, no-wrap msgid "B<#include Eargz.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:21 #, no-wrap msgid "" "BIB<, size_t *>IB<, const char " "*>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:24 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:27 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, size_t >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:29 #, no-wrap msgid "BIB<, size_t >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:32 #, no-wrap msgid "" "BIB<[], char **>IB<,>\n" "B< size_t *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:35 #, no-wrap msgid "" "BIB<, int >IB<, char " "**>IB<,>\n" "B< size_t *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:37 #, no-wrap msgid "" "BIB<, size_t *>IB<, char " "*>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:39 #, no-wrap msgid "" "BIB<, size_t >IB<, char " "**>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:42 #, no-wrap msgid "" "BIB<, size_t *>IB<, char " "*>IB<,>\n" "B< const char *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:44 #, no-wrap msgid "" "BIB<, size_t >IB<, const char " "*>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:48 #, no-wrap msgid "" "BIB<, size_t *>IB<, const char " "*>IB<,>\n" "B< const char *>IB<, unsigned int " "*>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:50 #, no-wrap msgid "BIB<, size_t >IB<, int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:53 build/C/man3/envz_add.3:38 msgid "These functions are glibc-specific." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:58 msgid "" "An argz vector is a pointer to a character buffer together with a length. " "The intended interpretation of the character buffer is an array of strings, " "where the strings are separated by null bytes (\\(aq\\e0\\(aq). If the " "length is nonzero, the last byte of the buffer must be a null byte." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:67 msgid "" "These functions are for handling argz vectors. The pair (NULL,0) is an argz " "vector, and, conversely, argz vectors of length 0 must have NULL pointer. " "Allocation of nonempty argz vectors is done using B(3), so that " "B(3) can be used to dispose of them again." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:77 msgid "" "B() adds the string I at the end of the array I<*argz>, and " "updates I<*argz> and I<*argz_len>." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:85 msgid "" "B() is similar, but splits the string I into substrings " "separated by the delimiter I. For example, one might use this on a " "UNIX search path with delimiter \\(aq:\\(aq." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:99 msgid "" "B() appends the argz vector (I,\\ I) after " "(I<*argz>,\\ I<*argz_len>) and updates I<*argz> and I<*argz_len>. (Thus, " "I<*argz_len> will be increased by I.)" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:104 msgid "" "B() counts the number of strings, that is, the number of null " "bytes (\\(aq\\e0\\(aq), in (I,\\ I)." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:112 msgid "" "B() converts a UNIX-style argument vector I, terminated " "by I<(char\\ *)\\ 0>, into an argz vector (I<*argz>,\\ I<*argz_len>)." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:120 msgid "" "B() converts the null-terminated string I into an " "argz vector (I<*argz>,\\ I<*argz_len>) by breaking it up at every " "occurrence of the separator I." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:130 msgid "" "B() removes the substring pointed to by I from the argz " "vector (I<*argz>,\\ I<*argz_len>) and updates I<*argz> and I<*argz_len>." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:145 msgid "" "B() is the opposite of B(). It takes the argz " "vector (I,\\ I) and fills the array starting at I " "with pointers to the substrings, and a final NULL, making a UNIX-style argv " "vector. The array I must have room for I(I, " "I) + 1 pointers." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:164 msgid "" "B() is the opposite of B(). It inserts the " "argument I at position I into the argz vector (I<*argz>,\\ " "I<*argz_len>) and updates I<*argz> and I<*argz_len>. If I is NULL, " "then I will inserted at the end." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:173 msgid "" "B() is a function to step trough the argz vector. If I " "is NULL, the first entry is returned. Otherwise, the entry following is " "returned. It returns NULL if there is no following entry." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:185 msgid "" "B() replaces each occurrence of I with I, " "reallocating argz as necessary. If I is non-NULL, " "I<*replace_count> will be incremented by the number of replacements." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:192 msgid "" "B() is the opposite of B(). It transforms " "the argz vector into a normal string by replacing all null bytes " "(\\(aq\\e0\\(aq) except the last by I." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:198 msgid "" "All argz functions that do memory allocation have a return type of " "I, and return 0 for success, and B if an allocation error " "occurs." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:201 build/C/man3/envz_add.3:121 msgid "These functions are a GNU extension. Handle with care." msgstr "" #. type: SH #: build/C/man3/argz_add.3:201 build/C/man3/basename.3:156 build/C/man3/realpath.3:195 build/C/man3/xcrypt.3:70 #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:204 msgid "" "Argz vectors without a terminating null byte may lead to Segmentation " "Faults." msgstr "" #. type: Plain text #: build/C/man3/argz_add.3:206 msgid "B(3)" msgstr "" #. type: TH #: build/C/man3/backtrace.3:27 #, no-wrap msgid "BACKTRACE" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:31 msgid "" "backtrace, backtrace_symbols, backtrace_symbols_fd - support for application " "self-debugging" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:33 msgid "B<#include Eexecinfo.hE>" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:38 msgid "B B<**>IB<,> B IB<);>" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:43 msgid "" "B B<*>IB<,> B " "IB<);>" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:50 msgid "" "B B<*>IB<,> B " "IB<,> B IB<);>" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:78 msgid "" "B() returns a backtrace for the calling program, in the array " "pointed to by I. A backtrace is the series of currently active " "function calls for the program. Each item in the array pointed to by " "I is of type I, and is the return address from the " "corresponding stack frame. The I argument specifies the maximum " "number of addresses that can be stored in I. If the backtrace is " "larger than I, then the addresses corresponding to the I most " "recent function calls are returned; to obtain the complete backtrace, make " "sure that I and I are large enough." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:103 msgid "" "Given the set of addresses returned by B() in I, " "B() translates the addresses into an array of strings " "that describe the addresses symbolically. The I argument specifies " "the number of addresses in I. The symbolic representation of each " "address consists of the function name (if this can be determined), a " "hexadecimal offset into the function, and the actual return address (in " "hexadecimal). The address of the array of string pointers is returned as " "the function result of B(). This array is B(3)ed " "by B(), and must be freed by the caller. (The strings " "pointed to by the array of pointers need not and should not be freed.)" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:118 msgid "" "B() takes the same I and I arguments as " "B(), but instead of returning an array of strings to the " "caller, it writes the strings, one per line, to the file descriptor I. " "B() does not call B(3), and so can be " "employed in situations where the latter function might fail." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:130 msgid "" "B() returns the number of addresses returned in I, which " "is not greater than I. If the return value is less than I, then " "the full backtrace was stored; if it is equal to I, then it may have " "been truncated, in which case the addresses of the oldest stack frames are " "not returned." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:137 msgid "" "On success, B() returns a pointer to the array " "B(3)ed by the call; on error, NULL is returned." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:143 msgid "" "B(), B(), and B() are " "provided in glibc since version 2.1." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:145 msgid "These functions are GNU extensions." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:149 msgid "" "These functions make some assumptions about how a function's return address " "is stored on the stack. Note the following:" msgstr "" #. type: IP #: build/C/man3/backtrace.3:149 build/C/man3/backtrace.3:155 build/C/man3/backtrace.3:157 build/C/man3/queue.3:93 build/C/man3/queue.3:95 build/C/man3/queue.3:97 build/C/man3/queue.3:99 build/C/man3/queue.3:109 build/C/man3/queue.3:131 build/C/man3/queue.3:133 build/C/man3/queue.3:135 #, no-wrap msgid "*" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:155 msgid "" "Omission of the frame pointers (as implied by any of B(1)'s nonzero " "optimization levels) may cause these assumptions to be violated." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:157 msgid "Inlined functions do not have stack frames." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:159 msgid "Tail-call optimization causes one stack frame to replace another." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:167 msgid "" "The symbol names may be unavailable without the use of special linker " "options. For systems using the GNU linker, it is necessary to use the " "I<-rdynamic> linker option. Note that names of \"static\" functions are not " "exposed, and won't be available in the backtrace." msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:174 msgid "" "The program below demonstrates the use of B() and " "B(). The following shell session shows what we might see " "when running the program:" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:188 #, no-wrap msgid "" "$B< cc -rdynamic prog.c -o prog>\n" "$B< ./prog 3>\n" "backtrace() returned 8 addresses\n" "\\&./prog(myfunc3+0x5c) [0x80487f0]\n" "\\&./prog [0x8048871]\n" "\\&./prog(myfunc+0x21) [0x8048894]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(main+0x65) [0x80488fb]\n" "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n" "\\&./prog [0x8048711]\n" msgstr "" #. type: SS #: build/C/man3/backtrace.3:190 build/C/man3/offsetof.3:76 #, no-wrap msgid "Program source" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:197 #, no-wrap msgid "" "#include Eexecinfo.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:205 #, no-wrap msgid "" "void\n" "myfunc3(void)\n" "{\n" " int j, nptrs;\n" "#define SIZE 100\n" " void *buffer[100];\n" " char **strings;\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:208 #, no-wrap msgid "" " nptrs = backtrace(buffer, SIZE);\n" " printf(\"backtrace() returned %d addresses\\en\", nptrs);\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:211 #, no-wrap msgid "" " /* The call backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO)\n" " would produce similar output to the following: */\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:217 #, no-wrap msgid "" " strings = backtrace_symbols(buffer, nptrs);\n" " if (strings == NULL) {\n" " perror(\"backtrace_symbols\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:220 #, no-wrap msgid "" " for (j = 0; j E nptrs; j++)\n" " printf(\"%s\\en\", strings[j]);\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:223 #, no-wrap msgid "" " free(strings);\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:229 #, no-wrap msgid "" "static void /* \"static\" means don\\(aqt export the symbol... */\n" "myfunc2(void)\n" "{\n" " myfunc3();\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:238 #, no-wrap msgid "" "void\n" "myfunc(int ncalls)\n" "{\n" " if (ncalls E 1)\n" " myfunc(ncalls - 1);\n" " else\n" " myfunc2();\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:246 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " if (argc != 2) {\n" " fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:250 #, no-wrap msgid "" " myfunc(atoi(argv[1]));\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/backtrace.3:256 msgid "B(1), B(1), B(3), B(3)" msgstr "" #. type: TH #: build/C/man3/basename.3:27 #, no-wrap msgid "BASENAME" msgstr "" #. type: TH #: build/C/man3/basename.3:27 #, no-wrap msgid "2009-03-30" msgstr "" #. type: Plain text #: build/C/man3/basename.3:30 msgid "basename, dirname - parse pathname components" msgstr "" #. type: Plain text #: build/C/man3/basename.3:33 #, no-wrap msgid "B<#include Elibgen.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:35 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:37 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:42 msgid "Warning: there are two different functions B() - see below." msgstr "" #. type: Plain text #: build/C/man3/basename.3:55 msgid "" "The functions B() and B() break a null-terminated " "pathname string into directory and filename components. In the usual case, " "B() returns the string up to, but not including, the final " "\\(aq/\\(aq, and B() returns the component following the final " "\\(aq/\\(aq. Trailing \\(aq/\\(aq characters are not counted as part of the " "pathname." msgstr "" #. type: Plain text #: build/C/man3/basename.3:78 msgid "" "If I does not contain a slash, B() returns the string \".\" " "while B() returns a copy of I. If I is the string " "\"/\", then both B() and B() return the string \"/\". " "If I is a NULL pointer or points to an empty string, then both " "B() and B() return the string \".\"." msgstr "" #. type: Plain text #: build/C/man3/basename.3:84 msgid "" "Concatenating the string returned by B(), a \"/\", and the string " "returned by B() yields a complete pathname." msgstr "" #. type: Plain text #: build/C/man3/basename.3:93 msgid "" "Both B() and B() may modify the contents of I, so " "it may be desirable to pass a copy when calling one of these functions." msgstr "" #. type: Plain text #: build/C/man3/basename.3:102 msgid "" "These functions may return pointers to statically allocated memory which may " "be overwritten by subsequent calls. Alternatively, they may return a " "pointer to some part of I, so that the string referred to by I " "should not be modified or freed until the pointer returned by the function " "is no longer required." msgstr "" #. type: Plain text #: build/C/man3/basename.3:109 msgid "" "The following list of examples (taken from SUSv2) shows the strings " "returned by B() and B() for different paths:" msgstr "" #. type: tbl table #: build/C/man3/basename.3:113 #, no-wrap msgid "path \tdirname\tbasename\n" msgstr "" #. type: tbl table #: build/C/man3/basename.3:114 #, no-wrap msgid "/usr/lib\t/usr\tlib\n" msgstr "" #. type: tbl table #: build/C/man3/basename.3:115 #, no-wrap msgid "/usr/ \t/\tusr\n" msgstr "" #. type: tbl table #: build/C/man3/basename.3:116 #, no-wrap msgid "usr \t.\tusr\n" msgstr "" #. type: tbl table #: build/C/man3/basename.3:117 #, no-wrap msgid "/ \t/\t/\n" msgstr "" #. type: tbl table #: build/C/man3/basename.3:118 #, no-wrap msgid ". \t.\t.\n" msgstr "" #. type: tbl table #: build/C/man3/basename.3:119 #, no-wrap msgid ".. \t.\t..\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:129 msgid "" "Both B() and B() return pointers to null-terminated " "strings. (Do not pass these pointers to B(3).)" msgstr "" #. type: Plain text #: build/C/man3/basename.3:131 build/C/man3/ftok.3:72 msgid "POSIX.1-2001." msgstr "" #. type: Plain text #: build/C/man3/basename.3:136 msgid "" "There are two different versions of B() - the POSIX version " "described above, and the GNU version, which one gets after" msgstr "" #. type: Plain text #: build/C/man3/basename.3:140 #, no-wrap msgid "B< #define _GNU_SOURCE> /* See feature_test_macros(7) */\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:142 #, no-wrap msgid "B<#include Estring.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:150 msgid "" "The GNU version never modifies its argument, and returns the empty string " "when I has a trailing slash, and in particular also when it is \"/\". " "There is no GNU version of B()." msgstr "" #. type: Plain text #: build/C/man3/basename.3:156 msgid "" "With glibc, one gets the POSIX version of B() when " "Ilibgen.hE> is included, and the GNU version otherwise." msgstr "" #. type: Plain text #: build/C/man3/basename.3:164 msgid "" "In the glibc implementation of the POSIX versions of these functions they " "modify their argument, and segfault when called with a static string like " "\"/usr/\". Before glibc 2.2.1, the glibc version of B() did not " "correctly handle pathnames with trailing \\(aq/\\(aq characters, and " "generated a segfault if given a NULL argument." msgstr "" #. type: Plain text #: build/C/man3/basename.3:169 #, no-wrap msgid "" "char *dirc, *basec, *bname, *dname;\n" "char *path = \"/etc/passwd\";\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:175 #, no-wrap msgid "" "dirc = strdup(path);\n" "basec = strdup(path);\n" "dname = dirname(dirc);\n" "bname = basename(basec);\n" "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n" msgstr "" #. type: Plain text #: build/C/man3/basename.3:180 msgid "B(1), B(1)" msgstr "" #. type: TH #: build/C/man3/envz_add.3:10 #, no-wrap msgid "ENVZ_ADD" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:14 msgid "" "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - " "environment string support" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:17 #, no-wrap msgid "B<#include Eenvz.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:20 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, const char *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:23 #, no-wrap msgid "" "BIB<, size_t *>IB<, const " "char *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:26 #, no-wrap msgid "" "BIB<, size_t *>IB<, const char " "*>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:30 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, size_t >IB<, int " ">IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:33 #, no-wrap msgid "" "BIB<, size_t *>IB<, const char " "*>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:35 #, no-wrap msgid "BIB<, size_t *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:48 msgid "" "An argz vector is a pointer to a character buffer together with a length, " "see B(3). An envz vector is a special argz vector, namely one " "where the strings have the form \"name=value\". Everything after the first " "\\(aq=\\(aq is considered to be the value. If there is no \\(aq=\\(aq, the " "value is taken to be NULL. (While the value in case of a trailing " "\\(aq=\\(aq is the empty string \"\".)" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:50 msgid "These functions are for handling envz vectors." msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:69 msgid "" "B() adds the string \"I=I\" (in case I is " "non-NULL) or \"I\" (in case I is NULL) to the envz vector " "(I<*envz>,\\ I<*envz_len>) and updates I<*envz> and I<*envz_len>. If an " "entry with the same I existed, it is removed." msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:76 msgid "" "B() looks for I in the envz vector (I,\\ " "I) and returns the entry if found, or NULL if not." msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:87 msgid "" "B() looks for I in the envz vector (I,\\ I) " "and returns the value if found, or NULL if not. (Note that the value can " "also be NULL, namely when there is an entry for I without \\(aq=\\(aq " "sign.)" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:102 msgid "" "B() adds each entry in I to I<*envz>, as if with " "B(). If I is true, then values in I will " "supersede those with the same name in I<*envz>, otherwise not." msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:109 msgid "" "B() removes the entry for I from (I<*envz>,\\ " "I<*envz_len>) if there was one." msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:112 msgid "B() removes all entries with value NULL." msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:118 msgid "" "All envz functions that do memory allocation have a return type of " "I, and return 0 for success, and B if an allocation error " "occurs." msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:126 #, no-wrap msgid "" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eenvz.hE\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:132 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[], char *envp[])\n" "{\n" " int i, e_len = 0;\n" " char *str;\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:135 #, no-wrap msgid "" " for (i = 0; envp[i] != NULL; i++)\n" " e_len += strlen(envp[i]) + 1;\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:142 #, no-wrap msgid "" " str = envz_entry(*envp, e_len, \"HOME\");\n" " printf(\"%s\\en\", str);\n" " str = envz_get(*envp, e_len, \"HOME\");\n" " printf(\"%s\\en\", str);\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/envz_add.3:145 msgid "B(3)" msgstr "" #. type: TH #: build/C/man3/ftok.3:29 #, no-wrap msgid "FTOK" msgstr "" #. type: TH #: build/C/man3/ftok.3:29 #, no-wrap msgid "2001-11-28" msgstr "" #. type: Plain text #: build/C/man3/ftok.3:32 msgid "ftok - convert a pathname and a project identifier to a System V IPC key" msgstr "" #. type: Plain text #: build/C/man3/ftok.3:36 #, no-wrap msgid "" "B<#include Esys/types.hE>\n" "B<#include Esys/ipc.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/ftok.3:39 msgid "BIB<, int >IB<);>" msgstr "" #. type: Plain text #: build/C/man3/ftok.3:54 msgid "" "The B() function uses the identity of the file named by the given " "I (which must refer to an existing, accessible file) and the " "least significant 8 bits of I (which must be nonzero) to generate a " "I type System V IPC key, suitable for use with B(2), " "B(2), or B(2)." msgstr "" #. type: Plain text #: build/C/man3/ftok.3:61 msgid "" "The resulting value is the same for all pathnames that name the same file, " "when the same value of I is used. The value returned should be " "different when the (simultaneously existing) files or the project IDs " "differ." msgstr "" #. type: Plain text #: build/C/man3/ftok.3:70 msgid "" "On success, the generated I value is returned. On failure -1 is " "returned, with I indicating the error as for the B(2) system " "call." msgstr "" #. type: Plain text #: build/C/man3/ftok.3:74 msgid "Under libc4 and libc5 (and under SunOS 4.x) the prototype was:" msgstr "" #. type: Plain text #: build/C/man3/ftok.3:77 msgid "BIB<, char >IB<);>" msgstr "" #. type: Plain text #: build/C/man3/ftok.3:89 msgid "" "Today I is an I, but still only 8 bits are used. Typical " "usage has an ASCII character I, that is why the behavior is said to " "be undefined when I is zero." msgstr "" #. type: Plain text #: build/C/man3/ftok.3:101 msgid "" "Of course no guarantee can be given that the resulting I is unique. " "Typically, a best effort attempt combines the given I byte, the " "lower 16 bits of the inode number, and the lower 8 bits of the device number " "into a 32-bit result. Collisions may easily happen, for example between " "files on I and files on I." msgstr "" #. type: Plain text #: build/C/man3/ftok.3:107 msgid "B(2), B(2), B(2), B(2), B(7)" msgstr "" #. type: TH #: build/C/man3/longjmp.3:27 #, no-wrap msgid "LONGJMP" msgstr "" #. type: TH #: build/C/man3/longjmp.3:27 #, no-wrap msgid "2009-01-13" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:30 msgid "longjmp, siglongjmp - nonlocal jump to a saved stack context" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:33 #, no-wrap msgid "B<#include Esetjmp.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:35 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:37 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:46 msgid "" "B(): _POSIX_C_SOURCE\\ E=\\ 1 || _XOPEN_SOURCE || " "_POSIX_C_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:70 msgid "" "B() and B(3) are useful for dealing with errors and " "interrupts encountered in a low-level subroutine of a program. B() " "restores the environment saved by the last call of B(3) with the " "corresponding I argument. After B() is completed, program " "execution continues as if the corresponding call of B(3) had just " "returned the value I. B() cannot cause 0 to be returned. If " "B() is invoked with a second argument of 0, 1 will be returned " "instead." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:88 msgid "" "B() is similar to B() except for the type of its " "I argument. If, and only if, the B(3) call that set this " "I used a nonzero I flag, B() also restores the " "signal mask that was saved by B(3)." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:90 msgid "These functions never return." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:95 msgid "" "C89, C99, and POSIX.1-2001 specify B(). POSIX.1-2001 specifies " "B()." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:105 msgid "" "POSIX does not specify whether B() will restore the signal context " "(see B(3) for some more details). If you want to portably save and " "restore signal masks, use B(3) and B()." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:109 msgid "" "The values of automatic variables are unspecified after a call to " "B() if they meet all the following criteria:" msgstr "" #. type: IP #: build/C/man3/longjmp.3:109 build/C/man3/longjmp.3:113 build/C/man3/longjmp.3:119 #, no-wrap msgid "\\(bu" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:113 msgid "" "they are local to the function that made the corresponding B(3) " "call;" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:119 msgid "" "their values are changed between the calls to B(3) and " "B(); and" msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:122 msgid "they are not declared as I." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:125 msgid "Analogous remarks apply for B()." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:132 msgid "" "B() and B() make programs hard to understand and " "maintain. If possible an alternative should be used." msgstr "" #. type: Plain text #: build/C/man3/longjmp.3:135 msgid "B(3), B(3)" msgstr "" #. type: TH #: build/C/man3/offsetof.3:28 #, no-wrap msgid "OFFSETOF" msgstr "" #. type: TH #: build/C/man3/offsetof.3:28 #, no-wrap msgid "2008-07-12" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:31 msgid "offsetof - offset of a structure member" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:34 #, no-wrap msgid "B<#include Estddef.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:36 #, no-wrap msgid "BIB<, >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:44 msgid "" "The macro B() returns the offset of the field I from the " "start of the structure I." msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:51 msgid "" "This macro is useful because the sizes of the fields that compose a " "structure can vary across implementations, and compilers may insert " "different numbers of padding bytes between fields. Consequently, an " "element's offset is not necessarily given by the sum of the sizes of the " "previous elements." msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:56 msgid "" "A compiler error will result if I is not aligned to a byte boundary " "(i.e., it is a bit field)." msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:63 msgid "" "B() returns the offset of the given I within the given " "I, in units of bytes." msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:65 msgid "C89, C99, POSIX.1-2001." msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:69 msgid "" "On a Linux/i386 system, when compiled using the default B(1) options, " "the program below produces the following output:" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:75 #, no-wrap msgid "" "$B< ./a.out>\n" "offsets: i=0; c=4; d=8 a=16\n" "sizeof(struct s)=16\n" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:82 #, no-wrap msgid "" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:92 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " struct s {\n" " int i;\n" " char c;\n" " double d;\n" " char a[];\n" " };\n" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:94 #, no-wrap msgid " /* Output is compiler dependent */\n" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:101 #, no-wrap msgid "" " printf(\"offsets: i=%ld; c=%ld; d=%ld a=%ld\\en\",\n" " (long) offsetof(struct s, i),\n" " (long) offsetof(struct s, c),\n" " (long) offsetof(struct s, d),\n" " (long) offsetof(struct s, a));\n" " printf(\"sizeof(struct s)=%ld\\en\", (long) sizeof(struct s));\n" msgstr "" #. type: Plain text #: build/C/man3/offsetof.3:104 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: TH #: build/C/man3/program_invocation_name.3:24 #, no-wrap msgid "INVOCATION_NAME" msgstr "" #. type: TH #: build/C/man3/program_invocation_name.3:24 #, no-wrap msgid "2006-04-29" msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:28 msgid "" "program_invocation_name, program_invocation_short_name - obtain name used to " "invoke calling program" msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:32 #, no-wrap msgid "" "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" "B<#include Eerrno.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:35 #, no-wrap msgid "" "BIB<;>\n" "BIB<;>\n" msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:46 msgid "" "I contains the name that was used to invoke the " "calling program. This is the same as the value of I in I
(), " "with the difference that the scope of I is global." msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:53 msgid "" "I contains the basename component of name " "that was used to invoke the calling program. That is, it is the same value " "as I, with all text up to and including the final " "slash (/), if any, removed." msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:56 msgid "" "These variables are automatically initialized by the glibc run-time startup " "code." msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:59 msgid "" "These variables are GNU extensions, and should not be used in programs " "intended to be portable." msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:63 msgid "" "The Linux-specific I file provides access to similar " "information." msgstr "" #. type: Plain text #: build/C/man3/program_invocation_name.3:65 msgid "B(5)" msgstr "" #. type: TH #: build/C/man3/queue.3:39 #, no-wrap msgid "QUEUE" msgstr "" #. type: TH #: build/C/man3/queue.3:39 #, no-wrap msgid "2007-12-28" msgstr "" #. type: Plain text #: build/C/man3/queue.3:48 msgid "" "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, " "LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, " "TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, " "CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, " "CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - implementations " "of lists, tail queues, and circular queues" msgstr "" #. type: Plain text #: build/C/man3/queue.3:51 #, no-wrap msgid "B<#include Esys/queue.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:60 #, no-wrap msgid "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, LIST_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, LIST_ENTRY >IB<);>\n" "BIB<, LIST_ENTRY >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:71 #, no-wrap msgid "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, TYPE *>IB<, TAILQ_ENTRY " ">IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:85 #, no-wrap msgid "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:90 msgid "" "These macros define and operate on three types of data structures: lists, " "tail queues, and circular queues. All three structures support the " "following functionality:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:95 msgid "Insertion of a new entry at the head of the list." msgstr "" #. type: Plain text #: build/C/man3/queue.3:97 msgid "Insertion of a new entry after any element in the list." msgstr "" #. type: Plain text #: build/C/man3/queue.3:99 msgid "Removal of any entry in the list." msgstr "" #. type: Plain text #: build/C/man3/queue.3:101 msgid "Forward traversal through the list." msgstr "" #. type: Plain text #: build/C/man3/queue.3:106 msgid "" "Lists are the simplest of the three data structures and support only the " "above functionality." msgstr "" #. type: Plain text #: build/C/man3/queue.3:108 msgid "Tail queues add the following functionality:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:111 build/C/man3/queue.3:133 msgid "Entries can be added at the end of a list." msgstr "" #. type: Plain text #: build/C/man3/queue.3:114 build/C/man3/queue.3:141 msgid "However:" msgstr "" #. type: IP #: build/C/man3/queue.3:117 build/C/man3/queue.3:144 #, no-wrap msgid "1." msgstr "" #. type: Plain text #: build/C/man3/queue.3:119 build/C/man3/queue.3:146 msgid "All list insertions and removals must specify the head of the list." msgstr "" #. type: IP #: build/C/man3/queue.3:119 build/C/man3/queue.3:146 #, no-wrap msgid "2." msgstr "" #. type: Plain text #: build/C/man3/queue.3:121 build/C/man3/queue.3:148 msgid "Each head entry requires two pointers rather than one." msgstr "" #. type: IP #: build/C/man3/queue.3:121 build/C/man3/queue.3:148 #, no-wrap msgid "3." msgstr "" #. type: Plain text #: build/C/man3/queue.3:124 msgid "" "Code size is about 15% greater and operations run about 20% slower than " "lists." msgstr "" #. type: Plain text #: build/C/man3/queue.3:128 msgid "Circular queues add the following functionality:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:135 msgid "Entries can be added before another entry." msgstr "" #. type: Plain text #: build/C/man3/queue.3:137 msgid "They may be traversed backward, from tail to head." msgstr "" #. type: Plain text #: build/C/man3/queue.3:150 msgid "The termination condition for traversal is more complex." msgstr "" #. type: IP #: build/C/man3/queue.3:150 #, no-wrap msgid "4." msgstr "" #. type: Plain text #: build/C/man3/queue.3:153 msgid "" "Code size is about 40% greater and operations run about 45% slower than " "lists." msgstr "" #. type: Plain text #: build/C/man3/queue.3:176 msgid "" "In the macro definitions, I is the name of a user-defined structure, " "that must contain a field of type B, B, or " "B, named I. The argument I is the name of a " "user-defined structure that must be declared using the macros B, " "B, or B. See the examples below for further " "explanation of how these macros are used." msgstr "" #. type: SS #: build/C/man3/queue.3:176 #, no-wrap msgid "Lists" msgstr "" #. type: Plain text #: build/C/man3/queue.3:189 msgid "" "A list is headed by a structure defined by the B macro. This " "structure contains a single pointer to the first element on the list. The " "elements are doubly linked so that an arbitrary element can be removed " "without traversing the list. New elements can be added to the list after an " "existing element or at the head of the list. A B structure is " "declared as follows:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:193 #, no-wrap msgid "LIST_HEAD(HEADNAME, TYPE) head;\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:202 msgid "" "where I is the name of the structure to be defined, and I is " "the type of the elements to be linked into the list. A pointer to the head " "of the list can later be declared as:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:206 build/C/man3/queue.3:299 build/C/man3/queue.3:401 #, no-wrap msgid "struct HEADNAME *headp;\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:214 build/C/man3/queue.3:307 build/C/man3/queue.3:409 msgid "(The names I and I are user selectable.)" msgstr "" #. type: Plain text #: build/C/man3/queue.3:219 msgid "" "The macro B declares a structure that connects the elements in " "the list." msgstr "" #. type: Plain text #: build/C/man3/queue.3:224 msgid "The macro B initializes the list referenced by I." msgstr "" #. type: Plain text #: build/C/man3/queue.3:230 msgid "" "The macro B inserts the new element I at the head of " "the list." msgstr "" #. type: Plain text #: build/C/man3/queue.3:237 msgid "" "The macro B inserts the new element I after the " "element I." msgstr "" #. type: Plain text #: build/C/man3/queue.3:243 msgid "The macro B removes the element I from the list." msgstr "" #. type: SS #: build/C/man3/queue.3:243 #, no-wrap msgid "List example" msgstr "" #. type: Plain text #: build/C/man3/queue.3:252 #, no-wrap msgid "" "LIST_HEAD(listhead, entry) head;\n" "struct listhead *headp; /* List head. */\n" "struct entry {\n" " ...\n" " LIST_ENTRY(entry) entries; /* List. */\n" " ...\n" "} *n1, *n2, *np;\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:254 #, no-wrap msgid "LIST_INIT(&head); /* Initialize the list. */\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:257 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n" "LIST_INSERT_HEAD(&head, n1, entries);\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:263 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n" "LIST_INSERT_AFTER(n1, n2, entries);\n" " /* Forward traversal. */\n" "for (np = head.lh_first; np != NULL; np = np-Eentries.le_next)\n" " np-E ...\n" msgstr "" #. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=1506 #. type: Plain text #: build/C/man3/queue.3:267 #, no-wrap msgid "" "while (head.lh_first != NULL) /* Delete. */\n" " LIST_REMOVE(head.lh_first, entries);\n" msgstr "" #. type: SS #: build/C/man3/queue.3:268 #, no-wrap msgid "Tail queues" msgstr "" #. type: Plain text #: build/C/man3/queue.3:282 msgid "" "A tail queue is headed by a structure defined by the B macro. " "This structure contains a pair of pointers, one to the first element in the " "tail queue and the other to the last element in the tail queue. The " "elements are doubly linked so that an arbitrary element can be removed " "without traversing the tail queue. New elements can be added to the tail " "queue after an existing element, at the head of the tail queue, or at the " "end of the tail queue. A B structure is declared as follows:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:286 #, no-wrap msgid "TAILQ_HEAD(HEADNAME, TYPE) head;\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:295 msgid "" "where I is the name of the structure to be defined, and I is " "the type of the elements to be linked into the tail queue. A pointer to the " "head of the tail queue can later be declared as:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:312 msgid "" "The macro B declares a structure that connects the elements in " "the tail queue." msgstr "" #. type: Plain text #: build/C/man3/queue.3:317 msgid "The macro B initializes the tail queue referenced by I." msgstr "" #. type: Plain text #: build/C/man3/queue.3:323 msgid "" "The macro B inserts the new element I at the head of " "the tail queue." msgstr "" #. type: Plain text #: build/C/man3/queue.3:329 msgid "" "The macro B inserts the new element I at the end of " "the tail queue." msgstr "" #. type: Plain text #: build/C/man3/queue.3:336 msgid "" "The macro B inserts the new element I after the " "element I." msgstr "" #. type: Plain text #: build/C/man3/queue.3:342 msgid "The macro B removes the element I from the tail queue." msgstr "" #. type: SS #: build/C/man3/queue.3:342 #, no-wrap msgid "Tail queue example" msgstr "" #. type: Plain text #: build/C/man3/queue.3:351 #, no-wrap msgid "" "TAILQ_HEAD(tailhead, entry) head;\n" "struct tailhead *headp; /* Tail queue head. */\n" "struct entry {\n" " ...\n" " TAILQ_ENTRY(entry) entries; /* Tail queue. */\n" " ...\n" "} *n1, *n2, *np;\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:353 #, no-wrap msgid "TAILQ_INIT(&head); /* Initialize the queue. */\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:356 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n" "TAILQ_INSERT_HEAD(&head, n1, entries);\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:359 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */\n" "TAILQ_INSERT_TAIL(&head, n1, entries);\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:368 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n" "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" " /* Forward traversal. */\n" "for (np = head.tqh_first; np != NULL; np = np-Eentries.tqe_next)\n" " np-E ...\n" " /* Delete. */\n" "while (head.tqh_first != NULL)\n" " TAILQ_REMOVE(&head, head.tqh_first, entries);\n" msgstr "" #. type: SS #: build/C/man3/queue.3:369 #, no-wrap msgid "Circular queues" msgstr "" #. type: Plain text #: build/C/man3/queue.3:384 msgid "" "A circular queue is headed by a structure defined by the B " "macro. This structure contains a pair of pointers, one to the first element " "in the circular queue and the other to the last element in the circular " "queue. The elements are doubly linked so that an arbitrary element can be " "removed without traversing the queue. New elements can be added to the " "queue after an existing element, before an existing element, at the head of " "the queue, or at the end of the queue. A B structure is " "declared as follows:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:388 #, no-wrap msgid "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:397 msgid "" "where I is the name of the structure to be defined, and I is " "the type of the elements to be linked into the circular queue. A pointer to " "the head of the circular queue can later be declared as:" msgstr "" #. type: Plain text #: build/C/man3/queue.3:414 msgid "" "The macro B declares a structure that connects the elements " "in the circular queue." msgstr "" #. type: Plain text #: build/C/man3/queue.3:419 msgid "" "The macro B initializes the circular queue referenced by " "I." msgstr "" #. type: Plain text #: build/C/man3/queue.3:425 msgid "" "The macro B inserts the new element I at the head " "of the circular queue." msgstr "" #. type: Plain text #: build/C/man3/queue.3:431 msgid "" "The macro B inserts the new element I at the end " "of the circular queue." msgstr "" #. type: Plain text #: build/C/man3/queue.3:438 msgid "" "The macro B inserts the new element I after the " "element I." msgstr "" #. type: Plain text #: build/C/man3/queue.3:445 msgid "" "The macro B inserts the new element I before the " "element I." msgstr "" #. type: Plain text #: build/C/man3/queue.3:451 msgid "" "The macro B removes the element I from the circular " "queue." msgstr "" #. type: SS #: build/C/man3/queue.3:451 #, no-wrap msgid "Circular queue example" msgstr "" #. type: Plain text #: build/C/man3/queue.3:460 #, no-wrap msgid "" "CIRCLEQ_HEAD(circleq, entry) head;\n" "struct circleq *headp; /* Circular queue head. */\n" "struct entry {\n" " ...\n" " CIRCLEQ_ENTRY(entry) entries; /* Circular queue. */\n" " ...\n" "} *n1, *n2, *np;\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:462 #, no-wrap msgid "CIRCLEQ_INIT(&head); /* Initialize the circular queue. */\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:465 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n" "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:468 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */\n" "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:471 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n" "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:484 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert before. */\n" "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n" " /* Forward traversal. */\n" "for (np = head.cqh_first; np != (void *)&head;\n" " np = np-Eentries.cqe_next)\n" " np-E ...\n" " /* Reverse traversal. */\n" "for (np = head.cqh_last; np != (void *)&head; np = " "np-Eentries.cqe_prev)\n" " np-E ...\n" " /* Delete. */\n" "while (head.cqh_first != (void *)&head)\n" " CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n" msgstr "" #. type: Plain text #: build/C/man3/queue.3:491 msgid "" "Not in POSIX.1-2001. Present on the BSDs. The queue functions first " "appeared in 4.4BSD." msgstr "" #. type: TH #: build/C/man3/realpath.3:28 #, no-wrap msgid "REALPATH" msgstr "" #. type: TH #: build/C/man3/realpath.3:28 #, no-wrap msgid "2013-03-15" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:31 msgid "realpath - return the canonicalized absolute pathname" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:35 #, no-wrap msgid "" "B<#include Elimits.hE>\n" "B<#include Estdlib.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:37 #, no-wrap msgid "BIB<, char *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:45 msgid "B():" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:49 msgid "" "_BSD_SOURCE || _XOPEN_SOURCE\\ E=\\ 500 || _XOPEN_SOURCE\\ &&\\ " "_XOPEN_SOURCE_EXTENDED" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:71 msgid "" "B() expands all symbolic links and resolves references to I, " "I and extra \\(aq/\\(aq characters in the null-terminated string named " "by I to produce a canonicalized absolute pathname. The resulting " "pathname is stored as a null-terminated string, up to a maximum of " "B bytes, in the buffer pointed to by I. The " "resulting path will have no symbolic link, I or I components." msgstr "" #. Even if we use resolved_path == NULL, then realpath() will still #. return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX #. bytes -- MTK, Dec 04 #. .SH HISTORY #. The #. .BR realpath () #. function first appeared in 4.4BSD, contributed by Jan-Simon Pendry. #. type: Plain text #: build/C/man3/realpath.3:91 msgid "" "If I is specified as NULL, then B() uses " "B(3) to allocate a buffer of up to B bytes to hold the " "resolved pathname, and returns a pointer to this buffer. The caller should " "deallocate this buffer using B(3)." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:96 msgid "" "If there is no error, B() returns a pointer to the " "I." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:103 msgid "" "Otherwise, it returns a NULL pointer, the contents of the array " "I are undefined, and I is set to indicate the error." msgstr "" #. type: SH #: build/C/man3/realpath.3:103 #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: build/C/man3/realpath.3:104 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:107 msgid "Read or search permission was denied for a component of the path prefix." msgstr "" #. type: TP #: build/C/man3/realpath.3:107 #, no-wrap msgid "B" msgstr "" #. (In libc5 this would just cause a segfault.) #. type: Plain text #: build/C/man3/realpath.3:116 msgid "" "I is NULL. (In glibc versions before 2.3, this error is also returned " "if I is NULL.)" msgstr "" #. type: TP #: build/C/man3/realpath.3:116 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:119 msgid "An I/O error occurred while reading from the filesystem." msgstr "" #. type: TP #: build/C/man3/realpath.3:119 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:122 msgid "Too many symbolic links were encountered in translating the pathname." msgstr "" #. type: TP #: build/C/man3/realpath.3:122 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:129 msgid "" "A component of a pathname exceeded B characters, or an entire " "pathname exceeded B characters." msgstr "" #. type: TP #: build/C/man3/realpath.3:129 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:132 msgid "The named file does not exist." msgstr "" #. type: TP #: build/C/man3/realpath.3:132 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:135 msgid "A component of the path prefix is not a directory." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:137 msgid "On Linux, this function appeared in libc 4.5.21." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:139 msgid "4.4BSD, POSIX.1-2001." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:144 msgid "" "POSIX.1-2001 says that the behavior if I is NULL is " "implementation-defined. POSIX.1-2008 specifies the behavior described in " "this page." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:156 msgid "" "In 4.4BSD and Solaris, the limit on the pathname length is B " "(found in Isys/param.hE>). SUSv2 prescribes B and " "B, as found in Ilimits.hE> or provided by the " "B(3) function. A typical source fragment would be" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:166 #, no-wrap msgid "" "#ifdef PATH_MAX\n" " path_max = PATH_MAX;\n" "#else\n" " path_max = pathconf(path, _PC_PATH_MAX);\n" " if (path_max E= 0)\n" " path_max = 4096;\n" "#endif\n" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:170 msgid "(But see the BUGS section.)" msgstr "" #. 2012-05-05, According to Casper Dik, the statement about #. Solaris was not true at least as far back as 1997, and #. may never have been true. # #. The 4.4BSD, Linux and SUSv2 versions always return an absolute #. pathname. #. Solaris may return a relative pathname when the #. .I path #. argument is relative. #. type: Plain text #: build/C/man3/realpath.3:184 msgid "" "The prototype of B() is given in Iunistd.hE> in libc4 " "and libc5, but in Istdlib.hE> everywhere else." msgstr "" #. type: SS #: build/C/man3/realpath.3:184 #, no-wrap msgid "GNU extensions" msgstr "" #. type: Plain text #: build/C/man3/realpath.3:195 msgid "" "If the call fails with either B or B and I is " "not NULL, then the prefix of I that is not readable or does not exist " "is returned in I." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:220 msgid "" "The POSIX.1-2001 standard version of this function is broken by design, " "since it is impossible to determine a suitable size for the output buffer, " "I. According to POSIX.1-2001 a buffer of size B " "suffices, but B need not be a defined constant, and may have to be " "obtained using B(3). And asking B(3) does not really " "help, since, on the one hand POSIX warns that the result of B(3) " "may be huge and unsuitable for mallocing memory, and on the other hand " "B(3) may return -1 to signify that B is not bounded. " "The I feature, not standardized in POSIX.1-2001, " "but standardized in POSIX.1-2008, allows this design problem to be avoided." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:226 msgid "" "The libc4 and libc5 implementation contained a buffer overflow (fixed in " "libc-5.4.13). Thus, set-user-ID programs like B(8) needed a private " "version." msgstr "" #. type: Plain text #: build/C/man3/realpath.3:232 msgid "" "B(2), B(3), B(3), B(3), " "B(3)" msgstr "" #. type: TH #: build/C/man3/setjmp.3:27 #, no-wrap msgid "SETJMP" msgstr "" #. type: TH #: build/C/man3/setjmp.3:27 #, no-wrap msgid "2009-06-26" msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:30 msgid "setjmp, sigsetjmp - save stack context for nonlocal goto" msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:32 msgid "B<#include Esetjmp.hE>" msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:35 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:37 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:46 msgid "B(): see NOTES." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:49 msgid "" "B(): _POSIX_C_SOURCE\\ E=\\ 1 || _XOPEN_SOURCE || " "_POSIX_C_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:65 msgid "" "B() and B(3) are useful for dealing with errors and " "interrupts encountered in a low-level subroutine of a program. B() " "saves the stack context/environment in I for later use by " "B(3). The stack context will be invalidated if the function which " "called B() returns." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:78 msgid "" "B() is similar to B(). If, and only if, I is " "nonzero, the process's current signal mask is saved in I and will be " "restored if a B(3) is later performed with this I." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:88 msgid "" "B() and B() return 0 if returning directly, and nonzero " "when returning from B(3) or B(3) using the saved " "context." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:93 msgid "" "C89, C99, and POSIX.1-2001 specify B(). POSIX.1-2001 specifies " "B()." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:114 msgid "" "POSIX does not specify whether B() will save the signal mask. In " "System V it will not. In 4.3BSD it will, and there is a function B<_setjmp> " "that will not. By default, Linux/glibc follows the System V behavior, but " "the BSD behavior is provided if the B<_BSD_SOURCE> feature test macro is " "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, " "B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:119 msgid "" "If you want to portably save and restore signal masks, use B() " "and B(3)." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:126 msgid "" "B() and B() make programs hard to understand and " "maintain. If possible an alternative should be used." msgstr "" #. type: Plain text #: build/C/man3/setjmp.3:129 msgid "B(3), B(3)" msgstr "" #. type: TH #: build/C/man3/xcrypt.3:13 #, no-wrap msgid "XCRYPT" msgstr "" #. type: TH #: build/C/man3/xcrypt.3:13 #, no-wrap msgid "2003-04-04" msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:16 msgid "xencrypt, xdecrypt, passwd2des - RFS password encryption" msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:18 msgid "B<#include Erpc/des_crypt.hE>" msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:20 msgid "BI<*passwd>B<, char *>IB<);>" msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:22 msgid "BIB<, char *>IB<);>" msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:24 msgid "BIB<, char *>IB<);>" msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:40 msgid "" "The function B() takes a character string I of " "arbitrary length and fills a character array I of length 8. The array " "I is suitable for use as DES key. It has odd parity set in bit 0 of " "each byte. Both other functions described here use this function to turn " "their argument I into a DES key." msgstr "" #. (over the alphabet 0123456789abcdefABCDEF), #. (over the alphabet 0123456789abcdef) #. type: Plain text #: build/C/man3/xcrypt.3:57 msgid "" "The B() function takes the ASCII character string I given " "in hex, which must have a length that is a multiple of 16, encrypts it using " "the DES key derived from I by B(), and outputs the " "result again in I as a hex string of the same length." msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:61 msgid "The B() function performs the converse operation." msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:67 msgid "" "The functions B() and B() return 1 on success and 0 on " "error." msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:70 msgid "" "These routines are present in libc 4.6.27 and later, and in glibc 2.1 and " "later." msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:72 msgid "The prototypes are missing from the abovementioned include file." msgstr "" #. type: Plain text #: build/C/man3/xcrypt.3:74 msgid "B(3)" msgstr ""