Re: Included Interfaces without documentation update
"Andrew Pham" <andpha@us.ibm.com> writes:
> Hello all,
>
> Kevin and I had looked at SUSv2, GNU upstream man pages (the one maintained
> by Brouwer Andries), SUS-XCU, SUS-XNS, SUS-IDX, SUS-XBD, SUS-XSH,
> SUS-XCURSES, and we are in the process of looking at ISO-C99 for
> documentation for the included interfaces. Of the 77 interfaces remain; we
> still are not able to find any info for 58 below:
>
>
> _IO_2_1_stderr_
> _IO_2_1_stdin_
> _IO_2_1_stdout_
Those variables are used to implement stdin etc. (from libio/stdio.c):
_IO_FILE *stdin = (FILE *) &_IO_2_1_stdin_;
_IO_FILE *stdout = (FILE *) &_IO_2_1_stdout_;
_IO_FILE *stderr = (FILE *) &_IO_2_1_stderr_;
> _IO_feof
Mangle for feof
> _IO_getc
Mangle for getc
> _IO_putc
Mangle for putc
> _IO_puts
Mangle for puts
> __ctype_b
This is used to implement the isXXX macros (check <ctype.h>):
extern __const unsigned short int *__ctype_b; /* Characteristics. */
#define __isctype(c, type) \
(__ctype_b[(int) (c)] & (unsigned short int) type)
# define isalnum(c) __isctype((c), _ISalnum)
> __ctype_tolower
> __ctype_toupper
Those are used to implement tolower/toupper efficiently (check <ctype.h>):
extern __const __int32_t *__ctype_tolower; /* Case conversions. */
extern __const __int32_t *__ctype_toupper; /* Case conversions. */
extern __inline int
toupper (int __c) __THROW
{
return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}
> __dcgettext
Mangle of dcgettext
> __divdi3
> __environ
> __libc_start_main
> __lxstat
Mangle of lstat - see __fxstat for details.
> __mempcpy
Mangle of mempcpy - see the glibc manual.
> __rawmemchr
Mangle of rawmemchr - see the glibc manual.
> __stpcpy
Mangle of stpcpy - see the glibc manual.
> _environ
> _nl_msg_cat_cntr
> _obstack_begin
> _obstack_newchunk
> _sys_errlist
> _sys_siglist
> adjtime
> alphasort64
Check the glibc manual.
> cfsetspeed
> dcgettext
> dladdr
>From <dladdr.h>:
/* Structure containing information about object searched using
`dladdr'. */
typedef struct
{
__const char *dli_fname; /* File name of defining object. */
void *dli_fbase; /* Load address of that object. */
__const char *dli_sname; /* Name of nearest symbol. */
void *dli_saddr; /* Exact value of nearest symbol. */
} Dl_info;
/* Fill in *INFO with the following information about ADDRESS.
Returns 0 iff no shared object's segments contain that address. */
extern int dladdr (const void *__address, Dl_info *__info) __THROW;
> errx
> getloadavg
> gettext
> loc2
> newscr
> rexecoptions
> sem_timedwait
> setspent
> sigandset
> sigisemptyset
> sigorset
> strcasestr
> strerror_r
> strndup
See the glibc manual
> strtoq
> strtouq
> strverscmp
> textdomain
See the glibc manual
> vasprintf
> vdprintf
> verrx
> warn
> warnx
> wcstoq
> wcstouq
>
> Please let us know if anyone has any suggestions with what to do with them
> or would like to help.
Check everything in the glibc manual first, some of these are GNU
extensions and documented there.
Hope the pointers help, I don't have time for real examples but if you
have any detailed questions, feel free to ask me.
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj
Reply to: