⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xos_r.h

📁 远程桌面连接工具
💻 H
📖 第 1 页 / 共 3 页
字号:
# define _XGetlogin(p)	getlogin_r((p).buf, sizeof((p).buf))# define _XTtyname(f,p)	ttyname_r((f), (p).buf, sizeof((p).buf))#endif /* X_INCLUDE_UNISTD_H */#if defined(X_INCLUDE_UNISTD_H) && !defined(_XOS_INCLUDED_UNISTD_H)# define _XOS_INCLUDED_UNISTD_H#endif/***** <string.h> wrappers *****//* * Effective prototypes for <string.h> wrappers: * * #define X_INCLUDE_STRING_H * #define XOS_USE_..._LOCKING * #include <X11/Xos_r.h> * * typedef ... _Xstrtokparams; * * char *_XStrtok(char *, const char*, _Xstrtokparams); */#if defined(X_INCLUDE_STRING_H) && !defined(_XOS_INCLUDED_STRING_H)/* <string.h> has already been included by <X11/Xos.h> */# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_STRINGAPI)#  define XOS_USE_MTSAFE_STRINGAPI 1# endif#endif#if !defined(X_INCLUDE_STRING_H) || defined(_XOS_INCLUDED_STRING_H)/* Do nothing. */#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API)/* Use regular, unsafe API. */typedef int _Xstrtokparams;	/* dummy */# define _XStrtok(s1,s2,p)	strtok((s1),(s2))#elif !defined(XOS_USE_MTSAFE_STRINGAPI) || defined(XNO_MTSAFE_STRINGAPI)/* Systems with thread support but no _r API. */typedef char *_Xstrtokparams;# define _XStrtok(s1,s2,p) \ ( (_Xos_processLock), \   ((p) = strtok((s1),(s2))), \   (_Xos_processUnlock), \   (p) )#else/* POSIX or pre-POSIX API. */typedef char * _Xstrtokparams;# define _XStrtok(s1,s2,p)	strtok_r((s1),(s2),&(p))#endif /* X_INCLUDE_STRING_H *//***** <time.h> wrappers *****//* * Effective prototypes for <time.h> wrappers: * * #define X_INCLUDE_TIME_H * #define XOS_USE_..._LOCKING * #include <X11/Xos_r.h> * * typedef ... _Xatimeparams; * typedef ... _Xctimeparams; * typedef ... _Xgtimeparams; * typedef ... _Xltimeparams; * * char *_XAsctime(const struct tm *, _Xatimeparams); * char *_XCtime(const time_t *, _Xctimeparams); * struct tm *_XGmtime(const time_t *, _Xgtimeparams); * struct tm *_XLocaltime(const time_t *, _Xltimeparams); */#if defined(X_INCLUDE_TIME_H) && !defined(_XOS_INCLUDED_TIME_H)# include <time.h># if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_TIMEAPI)#  define XOS_USE_MTSAFE_TIMEAPI 1# endif#endif#if !defined(X_INCLUDE_TIME_H) || defined(_XOS_INCLUDED_TIME_H)/* Do nothing. */#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API)/* Use regular, unsafe API. */typedef int _Xatimeparams;	/* dummy */# define _XAsctime(t,p)		asctime((t))typedef int _Xctimeparams;	/* dummy */# define _XCtime(t,p)		ctime((t))typedef int _Xgtimeparams;	/* dummy */# define _XGmtime(t,p)		gmtime((t))typedef int _Xltimeparams;	/* dummy */# define _XLocaltime(t,p)	localtime((t))#elif !defined(XOS_USE_MTSAFE_TIMEAPI) || defined(XNO_MTSAFE_TIMEAPI)/* Systems with thread support but no _r API. */typedef struct {# ifdef TIMELEN  char buf[TIMELEN];# else  char buf[26];# endif  char *result;} _Xctimeparams, _Xatimeparams;typedef struct {  struct tm buf;  struct tm *result;} _Xgtimeparams, _Xltimeparams;# define _XAsctime(t,p) \ ( (_Xos_processLock), \   (((p).result = asctime((t))) ? \    (strncpy((p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \    0), \   (_Xos_processUnlock), \   (p).result )# define _XCtime(t,p) \ ( (_Xos_processLock), \   (((p).result = ctime((t))) ? \    (strncpy((p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \    0), \   (_Xos_processUnlock), \   (p).result )# define _XGmtime(t,p) \ ( (_Xos_processLock), \   (((p).result = gmtime(t)) ? \    (memcpy(&(p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \    0), \   (_Xos_processUnlock), \   (p).result )# define _XLocaltime(t,p) \ ( (_Xos_processLock), \   (((p).result = localtime(t)) ? \    (memcpy(&(p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \    0), \   (_Xos_processUnlock), \   (p).result )#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && (defined(__osf__) || defined(hpV4))/* Returns (int)0 on success.  OSF/1 v3.2, HP/UX 10 * * extern int asctime_r(const struct tm *timeptr, char *buffer, int buflen); * extern int ctime_r(const time_t *timer, char *buffer, int buflen); * extern int gmtime_r(const time_t *timer, struct tm *result); * extern int localtime_r(const time_t *timer, struct tm *result); */# ifdef TIMELENtypedef char _Xatimeparams[TIMELEN];typedef char _Xctimeparams[TIMELEN];# elsetypedef char _Xatimeparams[26];typedef char _Xctimeparams[26];# endiftypedef struct tm _Xgtimeparams;typedef struct tm _Xltimeparams;# define _XAsctime(t,p)		(asctime_r((t),(p),sizeof((p))) ? NULL : (p))# define _XCtime(t,p)		(ctime_r((t),(p),sizeof((p))) ? NULL : (p))# define _XGmtime(t,p)		(gmtime_r((t),&(p)) ? NULL : &(p))# define _XLocaltime(t,p)	(localtime_r((t),&(p)) ? NULL : &(p))#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && defined(sun)/* Returns NULL on failure.  Solaris 2.5 * * extern char *asctime_r(const struct tm *tm,char *buf, int buflen); * extern char *ctime_r(const time_t *clock, char *buf, int buflen); * extern struct tm *gmtime_r(const time_t *clock, struct tm *res); * extern struct tm *localtime_r(const time_t *clock, struct tm *res); */# ifdef TIMELENtypedef char _Xatimeparams[TIMELEN];typedef char _Xctimeparams[TIMELEN];# elsetypedef char _Xatimeparams[26];typedef char _Xctimeparams[26];# endiftypedef struct tm _Xgtimeparams;typedef struct tm _Xltimeparams;# define _XAsctime(t,p)		asctime_r((t),(p),sizeof((p)))# define _XCtime(t,p)		ctime_r((t),(p),sizeof((p)))# define _XGmtime(t,p)		gmtime_r((t),&(p))# define _XLocaltime(t,p)	localtime_r((t),&(p))#else /* defined(_POSIX_THREAD_SAFE_FUNCTIONS) *//* POSIX final API.  OSF/1 v4.0, AIX, etc. * * extern char *asctime_r(const struct tm *timeptr, char *buffer); * extern char *ctime_r(const time_t *timer, char *buffer); * extern struct tm *gmtime_r(const time_t *timer, struct tm *result); * extern struct tm *localtime_r(const time_t *timer, struct tm *result); */# if defined(__osf__)/* OSF/1 V4.0 <time.h> doesn't declare the _P routines, breaking under C++. */extern char *_Pasctime_r(const struct tm *, char *);extern char *_Pctime_r(const time_t *, char *);extern struct tm *_Plocaltime_r(const time_t *, struct tm *);# endif# ifdef TIMELENtypedef char _Xatimeparams[TIMELEN];typedef char _Xctimeparams[TIMELEN];# elsetypedef char _Xatimeparams[26];typedef char _Xctimeparams[26];# endiftypedef struct tm _Xgtimeparams;typedef struct tm _Xltimeparams;# define _XAsctime(t,p)		asctime_r((t),(p))# define _XCtime(t,p)		ctime_r((t),(p))# define _XGmtime(t,p)		gmtime_r((t),&(p))# define _XLocaltime(t,p)	localtime_r((t),&(p))#endif /* X_INCLUDE_TIME_H */#if defined(X_INCLUDE_TIME_H) && !defined(_XOS_INCLUDED_TIME_H)# define _XOS_INCLUDED_TIME_H#endif/***** <grp.h> wrappers *****//* * Effective prototypes for <grp.h> wrappers: * * NOTE: On systems lacking appropriate _r functions Getgrgid() and *	Getgrnam() do NOT copy the list of group members! * * Remember that fgetgrent(), setgrent(), getgrent(), and endgrent() * are not included in POSIX. * * #define X_INCLUDE_GRP_H * #define XOS_USE_..._LOCKING * #include <X11/Xos_r.h> * * typedef ... _Xgetgrparams; * * struct group *_XGetgrgid(gid_t, _Xgetgrparams); * struct group *_XGetgrnam(const char *, _Xgetgrparams); */#if defined(X_INCLUDE_GRP_H) && !defined(_XOS_INCLUDED_GRP_H)# include <grp.h># if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_GRPAPI)#  define XOS_USE_MTSAFE_GRPAPI 1# endif#endif#if !defined(X_INCLUDE_GRP_H) || defined(_XOS_INCLUDED_GRP_H)/* Do nothing. */#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API)/* Use regular, unsafe API. */typedef int _Xgetgrparams;	/* dummy */#define _XGetgrgid(g,p)	getgrgid((g))#define _XGetgrnam(n,p)	getgrnam((n))#elif !defined(XOS_USE_MTSAFE_GRPAPI) || defined(XNO_MTSAFE_GRPAPI)/* Systems with thread support but no _r API.  UnixWare 2.0. */typedef struct {  struct group grp;#ifdef LINE_MAX  char buf[LINE_MAX];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#else  char buf[1024];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#endif  struct group *pgrp;  size_t len;} _Xgetgrparams;#ifdef SVR4/* Copy the gr_passwd field too. */# define _Xgrp_copyGroup(p) \ ( memcpy(&(p).grp, (p).pgrp, sizeof(struct group)), \   ((p).grp.gr_name = (p).buf), \   ((p).len = strlen((p).pgrp->gr_name)), \   strcpy((p).grp.gr_name, (p).pgrp->gr_name), \   ((p).grp.gr_passwd = (p).grp.gr_name + (p).len + 1), \   ((p).pgrp = &(p).grp), \   0 )#else# define _Xgrp_copyGroup(p) \ ( memcpy(&(p).grp, (p).pgrp, sizeof(struct group)), \   ((p).grp.gr_name = (p).buf), \   strcpy((p).grp.gr_name, (p).pgrp->gr_name), \   ((p).pgrp = &(p).grp), \   0 )#endif#define _XGetgrgid(g,p) \ ( (_Xos_processLock), \   (((p).pgrp = getgrgid((g))) ? _Xgrp_copyGroup(p) : 0), \   (_Xos_processUnlock), \   (p).pgrp )#define _XGetgrnam(n,p) \ ( (_Xos_processLock), \   (((p).pgrp = getgrnam((n))) ? _Xgrp_copyGroup(p) : 0), \   (_Xos_processUnlock), \   (p).pgrp )#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && (defined(sun) || defined(__osf__))/* Non-POSIX API.  Solaris, DEC v3.2. * * extern struct group *getgrgid_r(gid_t, struct group *, char *, int); * extern struct group *getgrnam_r(const char *, struct group *, char *, int); */typedef struct {  struct group grp;#ifdef LINE_MAX  char buf[LINE_MAX];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#else  char buf[1024];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#endif} _Xgetgrparams;#define _XGetgrgid(g,p)	getgrgid_r((g), &(p).grp, (p).buf, sizeof((p).buf))#define _XGetgrnam(n,p)	getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf))#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS)/* Non-POSIX API.  HP/UX 10, AIX 4. * * extern int getgrgid_r(gid_t, struct group *, char *, int); * extern int getgrnam_r(const char *, struct group *, char *, int); */typedef struct {  struct group grp;#ifdef LINE_MAX  char buf[LINE_MAX];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#else  char buf[1024];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#endif} _Xgetgrparams;#define _XGetgrgid(g,p)	\ ((getgrgid_r((g), &(p).grp, (p).buf, sizeof((p).buf)) ? NULL : &(p).grp))#define _XGetgrnam(n,p)	\ ((getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf)) ? NULL : &(p).grp))#else/* POSIX final API.  DEC v4.0, IRIX 6.2. * * int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **); * int getgrnam_r(const char *, struct group *, char *, size_t, struct group **); */# if defined(__osf__)/* OSF/1 V4.0 <grp.h> doesn't declare the _P routines, breaking under C++. */extern int _Pgetgrgid_r(gid_t, struct group *, char *, size_t, struct group **);extern int _Pgetgrnam_r(const char *, struct group *, char *, size_t, struct group **);# endiftypedef struct {  struct group grp;#ifdef LINE_MAX  char buf[LINE_MAX];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#else  char buf[1024];	/* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */#endif  struct group *result;} _Xgetgrparams;#define _XGetgrgid(g,p)	\ ((getgrgid_r((g), &(p).grp, (p).buf, sizeof((p).buf), &(p).result) ? \   NULL : (p).result))#define _XGetgrnam(n,p)	\ ((getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf), &(p).result) ? \   NULL : (p).result))#endif#if defined(X_INCLUDE_GRP_H) && !defined(_XOS_INCLUDED_GRP_H)# define _XOS_INCLUDED_GRP_H#endif#ifdef __cplusplus}  /* Close scope of 'extern "C"' declaration which encloses file. */#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -