📄 iperlsys.h
字号:
#define PerlSIO_rewind(f) rewind(f)#define PerlSIO_tmpfile() tmpfile()#define PerlSIO_fdupopen(f) (f)#endif /* PERL_IMPLICIT_SYS *//* * Interface for directory functions */#if defined(PERL_IMPLICIT_SYS)/* IPerlDir */struct IPerlDir;struct IPerlDirInfo;typedef int (*LPMakedir)(struct IPerlDir*, const char*, int);typedef int (*LPChdir)(struct IPerlDir*, const char*);typedef int (*LPRmdir)(struct IPerlDir*, const char*);typedef int (*LPDirClose)(struct IPerlDir*, DIR*);typedef DIR* (*LPDirOpen)(struct IPerlDir*, const char*);typedef struct direct* (*LPDirRead)(struct IPerlDir*, DIR*);typedef void (*LPDirRewind)(struct IPerlDir*, DIR*);typedef void (*LPDirSeek)(struct IPerlDir*, DIR*, long);typedef long (*LPDirTell)(struct IPerlDir*, DIR*);#ifdef WIN32typedef char* (*LPDirMapPathA)(struct IPerlDir*, const char*);typedef WCHAR* (*LPDirMapPathW)(struct IPerlDir*, const WCHAR*);#endifstruct IPerlDir{ LPMakedir pMakedir; LPChdir pChdir; LPRmdir pRmdir; LPDirClose pClose; LPDirOpen pOpen; LPDirRead pRead; LPDirRewind pRewind; LPDirSeek pSeek; LPDirTell pTell;#ifdef WIN32 LPDirMapPathA pMapPathA; LPDirMapPathW pMapPathW;#endif};struct IPerlDirInfo{ unsigned long nCount; /* number of entries expected */ struct IPerlDir perlDirList;};#define PerlDir_mkdir(name, mode) \ (*PL_Dir->pMakedir)(PL_Dir, (name), (mode))#define PerlDir_chdir(name) \ (*PL_Dir->pChdir)(PL_Dir, (name))#define PerlDir_rmdir(name) \ (*PL_Dir->pRmdir)(PL_Dir, (name))#define PerlDir_close(dir) \ (*PL_Dir->pClose)(PL_Dir, (dir))#define PerlDir_open(name) \ (*PL_Dir->pOpen)(PL_Dir, (name))#define PerlDir_read(dir) \ (*PL_Dir->pRead)(PL_Dir, (dir))#define PerlDir_rewind(dir) \ (*PL_Dir->pRewind)(PL_Dir, (dir))#define PerlDir_seek(dir, loc) \ (*PL_Dir->pSeek)(PL_Dir, (dir), (loc))#define PerlDir_tell(dir) \ (*PL_Dir->pTell)(PL_Dir, (dir))#ifdef WIN32#define PerlDir_mapA(dir) \ (*PL_Dir->pMapPathA)(PL_Dir, (dir))#define PerlDir_mapW(dir) \ (*PL_Dir->pMapPathW)(PL_Dir, (dir))#endif#else /* PERL_IMPLICIT_SYS */#define PerlDir_mkdir(name, mode) Mkdir((name), (mode))#ifdef VMS# define PerlDir_chdir(n) Chdir((n))#else# define PerlDir_chdir(name) chdir((name))#endif#define PerlDir_rmdir(name) rmdir((name))#define PerlDir_close(dir) closedir((dir))#define PerlDir_open(name) opendir((name))#define PerlDir_read(dir) readdir((dir))#define PerlDir_rewind(dir) rewinddir((dir))#define PerlDir_seek(dir, loc) seekdir((dir), (loc))#define PerlDir_tell(dir) telldir((dir))#ifdef WIN32#define PerlDir_mapA(dir) dir#define PerlDir_mapW(dir) dir#endif#endif /* PERL_IMPLICIT_SYS *//* Interface for perl environment functions*/#if defined(PERL_IMPLICIT_SYS)/* IPerlEnv */struct IPerlEnv;struct IPerlEnvInfo;typedef char* (*LPEnvGetenv)(struct IPerlEnv*, const char*);typedef int (*LPEnvPutenv)(struct IPerlEnv*, const char*);typedef char* (*LPEnvGetenv_len)(struct IPerlEnv*, const char *varname, unsigned long *len);typedef int (*LPEnvUname)(struct IPerlEnv*, struct utsname *name);typedef void (*LPEnvClearenv)(struct IPerlEnv*);typedef void* (*LPEnvGetChildenv)(struct IPerlEnv*);typedef void (*LPEnvFreeChildenv)(struct IPerlEnv*, void* env);typedef char* (*LPEnvGetChilddir)(struct IPerlEnv*);typedef void (*LPEnvFreeChilddir)(struct IPerlEnv*, char* dir);#ifdef HAS_ENVGETENVtypedef char* (*LPENVGetenv)(struct IPerlEnv*, const char *varname);typedef char* (*LPENVGetenv_len)(struct IPerlEnv*, const char *varname, unsigned long *len);#endif#ifdef WIN32typedef unsigned long (*LPEnvOsID)(struct IPerlEnv*);typedef char* (*LPEnvLibPath)(struct IPerlEnv*, const char*);typedef char* (*LPEnvSiteLibPath)(struct IPerlEnv*, const char*);typedef char* (*LPEnvVendorLibPath)(struct IPerlEnv*, const char*);typedef void (*LPEnvGetChildIO)(struct IPerlEnv*, child_IO_table*);#endifstruct IPerlEnv{ LPEnvGetenv pGetenv; LPEnvPutenv pPutenv; LPEnvGetenv_len pGetenv_len; LPEnvUname pEnvUname; LPEnvClearenv pClearenv; LPEnvGetChildenv pGetChildenv; LPEnvFreeChildenv pFreeChildenv; LPEnvGetChilddir pGetChilddir; LPEnvFreeChilddir pFreeChilddir;#ifdef HAS_ENVGETENV LPENVGetenv pENVGetenv; LPENVGetenv_len pENVGetenv_len;#endif#ifdef WIN32 LPEnvOsID pEnvOsID; LPEnvLibPath pLibPath; LPEnvSiteLibPath pSiteLibPath; LPEnvVendorLibPath pVendorLibPath; LPEnvGetChildIO pGetChildIO;#endif};struct IPerlEnvInfo{ unsigned long nCount; /* number of entries expected */ struct IPerlEnv perlEnvList;};#define PerlEnv_putenv(str) \ (*PL_Env->pPutenv)(PL_Env,(str))#define PerlEnv_getenv(str) \ (*PL_Env->pGetenv)(PL_Env,(str))#define PerlEnv_getenv_len(str,l) \ (*PL_Env->pGetenv_len)(PL_Env,(str), (l))#define PerlEnv_clearenv() \ (*PL_Env->pClearenv)(PL_Env)#define PerlEnv_get_childenv() \ (*PL_Env->pGetChildenv)(PL_Env)#define PerlEnv_free_childenv(e) \ (*PL_Env->pFreeChildenv)(PL_Env, (e))#define PerlEnv_get_childdir() \ (*PL_Env->pGetChilddir)(PL_Env)#define PerlEnv_free_childdir(d) \ (*PL_Env->pFreeChilddir)(PL_Env, (d))#ifdef HAS_ENVGETENV# define PerlEnv_ENVgetenv(str) \ (*PL_Env->pENVGetenv)(PL_Env,(str))# define PerlEnv_ENVgetenv_len(str,l) \ (*PL_Env->pENVGetenv_len)(PL_Env,(str), (l))#else# define PerlEnv_ENVgetenv(str) \ PerlEnv_getenv((str))# define PerlEnv_ENVgetenv_len(str,l) \ PerlEnv_getenv_len((str),(l))#endif#define PerlEnv_uname(name) \ (*PL_Env->pEnvUname)(PL_Env,(name))#ifdef WIN32#define PerlEnv_os_id() \ (*PL_Env->pEnvOsID)(PL_Env)#define PerlEnv_lib_path(str) \ (*PL_Env->pLibPath)(PL_Env,(str))#define PerlEnv_sitelib_path(str) \ (*PL_Env->pSiteLibPath)(PL_Env,(str))#define PerlEnv_vendorlib_path(str) \ (*PL_Env->pVendorLibPath)(PL_Env,(str))#define PerlEnv_get_child_IO(ptr) \ (*PL_Env->pGetChildIO)(PL_Env, ptr)#endif#else /* PERL_IMPLICIT_SYS */#define PerlEnv_putenv(str) putenv((str))#define PerlEnv_getenv(str) getenv((str))#define PerlEnv_getenv_len(str,l) getenv_len((str), (l))#ifdef HAS_ENVGETENV# define PerlEnv_ENVgetenv(str) ENVgetenv((str))# define PerlEnv_ENVgetenv_len(str,l) ENVgetenv_len((str), (l))#else# define PerlEnv_ENVgetenv(str) PerlEnv_getenv((str))# define PerlEnv_ENVgetenv_len(str,l) PerlEnv_getenv_len((str), (l))#endif#define PerlEnv_uname(name) uname((name))#ifdef WIN32#define PerlEnv_os_id() win32_os_id()#define PerlEnv_lib_path(str) win32_get_privlib(str)#define PerlEnv_sitelib_path(str) win32_get_sitelib(str)#define PerlEnv_vendorlib_path(str) win32_get_vendorlib(str)#define PerlEnv_get_child_IO(ptr) win32_get_child_IO(ptr)#define PerlEnv_clearenv() win32_clearenv()#define PerlEnv_get_childenv() win32_get_childenv()#define PerlEnv_free_childenv(e) win32_free_childenv((e))#define PerlEnv_get_childdir() win32_get_childdir()#define PerlEnv_free_childdir(d) win32_free_childdir((d))#else#define PerlEnv_clearenv() clearenv()#define PerlEnv_get_childenv() get_childenv()#define PerlEnv_free_childenv(e) free_childenv((e))#define PerlEnv_get_childdir() get_childdir()#define PerlEnv_free_childdir(d) free_childdir((d))#endif#endif /* PERL_IMPLICIT_SYS *//* Interface for perl low-level IO functions*/#if defined(PERL_IMPLICIT_SYS)/* IPerlLIO */struct IPerlLIO;struct IPerlLIOInfo;typedef int (*LPLIOAccess)(struct IPerlLIO*, const char*, int);typedef int (*LPLIOChmod)(struct IPerlLIO*, const char*, int);typedef int (*LPLIOChown)(struct IPerlLIO*, const char*, uid_t, gid_t);typedef int (*LPLIOChsize)(struct IPerlLIO*, int, Off_t);typedef int (*LPLIOClose)(struct IPerlLIO*, int);typedef int (*LPLIODup)(struct IPerlLIO*, int);typedef int (*LPLIODup2)(struct IPerlLIO*, int, int);typedef int (*LPLIOFlock)(struct IPerlLIO*, int, int);typedef int (*LPLIOFileStat)(struct IPerlLIO*, int, Stat_t*);typedef int (*LPLIOIOCtl)(struct IPerlLIO*, int, unsigned int, char*);typedef int (*LPLIOIsatty)(struct IPerlLIO*, int);typedef int (*LPLIOLink)(struct IPerlLIO*, const char*, const char *);typedef Off_t (*LPLIOLseek)(struct IPerlLIO*, int, Off_t, int);typedef int (*LPLIOLstat)(struct IPerlLIO*, const char*, Stat_t*);typedef char* (*LPLIOMktemp)(struct IPerlLIO*, char*);typedef int (*LPLIOOpen)(struct IPerlLIO*, const char*, int); typedef int (*LPLIOOpen3)(struct IPerlLIO*, const char*, int, int); typedef int (*LPLIORead)(struct IPerlLIO*, int, void*, unsigned int);typedef int (*LPLIORename)(struct IPerlLIO*, const char*, const char*);#ifdef NETWAREtypedef int (*LPLIOSetmode)(struct IPerlLIO*, FILE*, int);#elsetypedef int (*LPLIOSetmode)(struct IPerlLIO*, int, int);#endif /* NETWARE */typedef int (*LPLIONameStat)(struct IPerlLIO*, const char*, Stat_t*);typedef char* (*LPLIOTmpnam)(struct IPerlLIO*, char*);typedef int (*LPLIOUmask)(struct IPerlLIO*, int);typedef int (*LPLIOUnlink)(struct IPerlLIO*, const char*);typedef int (*LPLIOUtime)(struct IPerlLIO*, const char*, struct utimbuf*);typedef int (*LPLIOWrite)(struct IPerlLIO*, int, const void*, unsigned int);struct IPerlLIO{ LPLIOAccess pAccess; LPLIOChmod pChmod; LPLIOChown pChown; LPLIOChsize pChsize; LPLIOClose pClose; LPLIODup pDup; LPLIODup2 pDup2; LPLIOFlock pFlock; LPLIOFileStat pFileStat; LPLIOIOCtl pIOCtl; LPLIOIsatty pIsatty; LPLIOLink pLink; LPLIOLseek pLseek; LPLIOLstat pLstat; LPLIOMktemp pMktemp; LPLIOOpen pOpen; LPLIOOpen3 pOpen3; LPLIORead pRead; LPLIORename pRename; LPLIOSetmode pSetmode; LPLIONameStat pNameStat; LPLIOTmpnam pTmpnam; LPLIOUmask pUmask; LPLIOUnlink pUnlink; LPLIOUtime pUtime; LPLIOWrite pWrite;};struct IPerlLIOInfo{ unsigned long nCount; /* number of entries expected */ struct IPerlLIO perlLIOList;};#define PerlLIO_access(file, mode) \ (*PL_LIO->pAccess)(PL_LIO, (file), (mode))#define PerlLIO_chmod(file, mode) \ (*PL_LIO->pChmod)(PL_LIO, (file), (mode))#define PerlLIO_chown(file, owner, group) \ (*PL_LIO->pChown)(PL_LIO, (file), (owner), (group))#define PerlLIO_chsize(fd, size) \ (*PL_LIO->pChsize)(PL_LIO, (fd), (size))#define PerlLIO_close(fd) \ (*PL_LIO->pClose)(PL_LIO, (fd))#define PerlLIO_dup(fd) \ (*PL_LIO->pDup)(PL_LIO, (fd))#define PerlLIO_dup2(fd1, fd2) \ (*PL_LIO->pDup2)(PL_LIO, (fd1), (fd2))#define PerlLIO_flock(fd, op) \ (*PL_LIO->pFlock)(PL_LIO, (fd), (op))#define PerlLIO_fstat(fd, buf) \ (*PL_LIO->pFileStat)(PL_LIO, (fd), (buf))#define PerlLIO_ioctl(fd, u, buf) \ (*PL_LIO->pIOCtl)(PL_LIO, (fd), (u), (buf))#define PerlLIO_isatty(fd) \ (*PL_LIO->pIsatty)(PL_LIO, (fd))#define PerlLIO_link(oldname, newname) \ (*PL_LIO->pLink)(PL_LIO, (oldname), (newname))#define PerlLIO_lseek(fd, offset, mode) \ (*PL_LIO->pLseek)(PL_LIO, (fd), (offset), (mode))#define PerlLIO_lstat(name, buf) \ (*PL_LIO->pLstat)(PL_LIO, (name), (buf))#define PerlLIO_mktemp(file) \ (*PL_LIO->pMktemp)(PL_LIO, (file))#define PerlLIO_open(file, flag) \ (*PL_LIO->pOpen)(PL_LIO, (file), (flag))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -