📄 reentr.h
字号:
/* -*- buffer-read-only: t -*- * * reentr.h * * Copyright (C) 2002, 2003, 2005, 2006, 2007 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by reentr.pl from data in reentr.pl. */#ifndef REENTR_H#define REENTR_H/* If compiling for a threaded perl, we will macro-wrap the system/library * interfaces (e.g. getpwent()) which have threaded versions * (e.g. getpwent_r()), which will handle things correctly for * the Perl interpreter, but otherwise (for XS) the wrapping does * not take place. See L<perlxs/Thread-aware system interfaces>. */#ifndef PERL_REENTR_API# if defined(PERL_CORE) || defined(PERL_EXT)# define PERL_REENTR_API 1# else# define PERL_REENTR_API 0# endif#endif#ifdef USE_REENTRANT_API /* Deprecations: some platforms have the said reentrant interfaces * but they are declared obsolete and are not to be used. Often this * means that the platform has threadsafed the interfaces (hopefully). * All this is OS version dependent, so we are of course fooling ourselves. * If you know of more deprecations on some platforms, please add your own * (by editing reentr.pl, mind!) */#ifdef __hpux# undef HAS_CRYPT_R# undef HAS_DRAND48_R# undef HAS_ENDGRENT_R# undef HAS_ENDPWENT_R# undef HAS_GETGRENT_R# undef HAS_GETPWENT_R# undef HAS_SETLOCALE_R# undef HAS_SRAND48_R# undef HAS_STRERROR_R# define NETDB_R_OBSOLETE#endif#if defined(__osf__) && defined(__alpha) /* Tru64 aka Digital UNIX */# undef HAS_CRYPT_R# undef HAS_STRERROR_R# define NETDB_R_OBSOLETE#endif/* * As of OpenBSD 3.7, reentrant functions are now working, they just are * incompatible with everyone else. To make OpenBSD happy, we have to * memzero out certain structures before calling the functions. */#if defined(__OpenBSD__)# define REENTR_MEMZERO(a,b) memzero(a,b)#else# define REENTR_MEMZERO(a,b) 0#endif #ifdef NETDB_R_OBSOLETE# undef HAS_ENDHOSTENT_R# undef HAS_ENDNETENT_R# undef HAS_ENDPROTOENT_R# undef HAS_ENDSERVENT_R# undef HAS_GETHOSTBYADDR_R# undef HAS_GETHOSTBYNAME_R# undef HAS_GETHOSTENT_R# undef HAS_GETNETBYADDR_R# undef HAS_GETNETBYNAME_R# undef HAS_GETNETENT_R# undef HAS_GETPROTOBYNAME_R# undef HAS_GETPROTOBYNUMBER_R# undef HAS_GETPROTOENT_R# undef HAS_GETSERVBYNAME_R# undef HAS_GETSERVBYPORT_R# undef HAS_GETSERVENT_R# undef HAS_SETHOSTENT_R# undef HAS_SETNETENT_R# undef HAS_SETPROTOENT_R# undef HAS_SETSERVENT_R#endif#ifdef I_PWD# include <pwd.h>#endif#ifdef I_GRP# include <grp.h>#endif#ifdef I_NETDB# include <netdb.h>#endif#ifdef I_STDLIB# include <stdlib.h> /* drand48_data */#endif#ifdef I_CRYPT# ifdef I_CRYPT# include <crypt.h># endif#endif#ifdef HAS_GETSPNAM_R# ifdef I_SHADOW# include <shadow.h># endif#endif#define REENTRANT_PROTO_B_B 1#define REENTRANT_PROTO_B_BI 2#define REENTRANT_PROTO_B_BW 3#define REENTRANT_PROTO_B_CCD 4#define REENTRANT_PROTO_B_CCS 5#define REENTRANT_PROTO_B_IBI 6#define REENTRANT_PROTO_B_IBW 7#define REENTRANT_PROTO_B_SB 8#define REENTRANT_PROTO_B_SBI 9#define REENTRANT_PROTO_I_BI 10#define REENTRANT_PROTO_I_BW 11#define REENTRANT_PROTO_I_CCSBWR 12#define REENTRANT_PROTO_I_CCSD 13#define REENTRANT_PROTO_I_CII 14#define REENTRANT_PROTO_I_CIISD 15#define REENTRANT_PROTO_I_CSBI 16#define REENTRANT_PROTO_I_CSBIR 17#define REENTRANT_PROTO_I_CSBWR 18#define REENTRANT_PROTO_I_CSBWRE 19#define REENTRANT_PROTO_I_CSD 20#define REENTRANT_PROTO_I_CWISBWRE 21#define REENTRANT_PROTO_I_CWISD 22#define REENTRANT_PROTO_I_D 23#define REENTRANT_PROTO_I_H 24#define REENTRANT_PROTO_I_IBI 25#define REENTRANT_PROTO_I_IBW 26#define REENTRANT_PROTO_I_ICBI 27#define REENTRANT_PROTO_I_ICSBWR 28#define REENTRANT_PROTO_I_ICSD 29#define REENTRANT_PROTO_I_ID 30#define REENTRANT_PROTO_I_IISD 31#define REENTRANT_PROTO_I_ISBWR 32#define REENTRANT_PROTO_I_ISD 33#define REENTRANT_PROTO_I_LISBI 34#define REENTRANT_PROTO_I_LISD 35#define REENTRANT_PROTO_I_LS 36#define REENTRANT_PROTO_I_SB 37#define REENTRANT_PROTO_I_SBI 38#define REENTRANT_PROTO_I_SBIE 39#define REENTRANT_PROTO_I_SBIH 40#define REENTRANT_PROTO_I_SBIR 41#define REENTRANT_PROTO_I_SBWR 42#define REENTRANT_PROTO_I_SBWRE 43#define REENTRANT_PROTO_I_SD 44#define REENTRANT_PROTO_I_ST 45#define REENTRANT_PROTO_I_St 46#define REENTRANT_PROTO_I_TISD 47#define REENTRANT_PROTO_I_TS 48#define REENTRANT_PROTO_I_TSBI 49#define REENTRANT_PROTO_I_TSBIR 50#define REENTRANT_PROTO_I_TSBWR 51#define REENTRANT_PROTO_I_TSR 52#define REENTRANT_PROTO_I_TsISBWRE 53#define REENTRANT_PROTO_I_UISBWRE 54#define REENTRANT_PROTO_I_iS 55#define REENTRANT_PROTO_I_lS 56#define REENTRANT_PROTO_I_uISBWRE 57#define REENTRANT_PROTO_S_CBI 58#define REENTRANT_PROTO_S_CCSBI 59#define REENTRANT_PROTO_S_CIISBIE 60#define REENTRANT_PROTO_S_CSBI 61#define REENTRANT_PROTO_S_CSBIE 62#define REENTRANT_PROTO_S_CWISBIE 63#define REENTRANT_PROTO_S_CWISBWIE 64#define REENTRANT_PROTO_S_ICSBI 65#define REENTRANT_PROTO_S_ISBI 66#define REENTRANT_PROTO_S_LISBI 67#define REENTRANT_PROTO_S_SBI 68#define REENTRANT_PROTO_S_SBIE 69#define REENTRANT_PROTO_S_SBW 70#define REENTRANT_PROTO_S_TISBI 71#define REENTRANT_PROTO_S_TS 72#define REENTRANT_PROTO_S_TSBI 73#define REENTRANT_PROTO_S_TSBIE 74#define REENTRANT_PROTO_S_TWISBIE 75#define REENTRANT_PROTO_V_D 76#define REENTRANT_PROTO_V_H 77#define REENTRANT_PROTO_V_ID 78/* Defines for indicating which special features are supported. *//* The getgrent getgrgid getgrnam using buffer? */#if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR || GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBW || GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH)# define GETGRENT_R_HAS_BUFFER#else# undef GETGRENT_R_HAS_BUFFER#endif#if defined(HAS_GETGRGID_R) && (GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBI || GETGRGID_R_PROTO == REENTRANT_PROTO_S_TSBI)# define GETGRGID_R_HAS_BUFFER#else# undef GETGRGID_R_HAS_BUFFER#endif#if defined(HAS_GETGRNAM_R) && (GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR || GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CBI || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBI || GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CSBI)# define GETGRNAM_R_HAS_BUFFER#else# undef GETGRNAM_R_HAS_BUFFER#endif/* Any of the getgrent getgrgid getgrnam using buffer? */#if (defined(GETGRENT_R_HAS_BUFFER) || defined(GETGRGID_R_HAS_BUFFER) || defined(GETGRNAM_R_HAS_BUFFER))# define USE_GRENT_BUFFER#else# undef USE_GRENT_BUFFER#endif/* The getgrent getgrgid getgrnam using ptr? */#if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR)# define GETGRENT_R_HAS_PTR#else# undef GETGRENT_R_HAS_PTR#endif#if defined(HAS_GETGRGID_R) && (GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR)# define GETGRGID_R_HAS_PTR#else# undef GETGRGID_R_HAS_PTR#endif#if defined(HAS_GETGRNAM_R) && (GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR)# define GETGRNAM_R_HAS_PTR#else# undef GETGRNAM_R_HAS_PTR#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -