📄 posix.xs
字号:
return _PC_VDISABLE;#else goto not_there;#endif break; } if (strnEQ(name, "_POSIX_", 7)) { if (strEQ(name, "_POSIX_ARG_MAX"))#ifdef _POSIX_ARG_MAX return _POSIX_ARG_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_CHILD_MAX"))#ifdef _POSIX_CHILD_MAX return _POSIX_CHILD_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_CHOWN_RESTRICTED"))#ifdef _POSIX_CHOWN_RESTRICTED return _POSIX_CHOWN_RESTRICTED;#else return 0;#endif if (strEQ(name, "_POSIX_JOB_CONTROL"))#ifdef _POSIX_JOB_CONTROL return _POSIX_JOB_CONTROL;#else return 0;#endif if (strEQ(name, "_POSIX_LINK_MAX"))#ifdef _POSIX_LINK_MAX return _POSIX_LINK_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_MAX_CANON"))#ifdef _POSIX_MAX_CANON return _POSIX_MAX_CANON;#else return 0;#endif if (strEQ(name, "_POSIX_MAX_INPUT"))#ifdef _POSIX_MAX_INPUT return _POSIX_MAX_INPUT;#else return 0;#endif if (strEQ(name, "_POSIX_NAME_MAX"))#ifdef _POSIX_NAME_MAX return _POSIX_NAME_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_NGROUPS_MAX"))#ifdef _POSIX_NGROUPS_MAX return _POSIX_NGROUPS_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_NO_TRUNC"))#ifdef _POSIX_NO_TRUNC return _POSIX_NO_TRUNC;#else return 0;#endif if (strEQ(name, "_POSIX_OPEN_MAX"))#ifdef _POSIX_OPEN_MAX return _POSIX_OPEN_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_PATH_MAX"))#ifdef _POSIX_PATH_MAX return _POSIX_PATH_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_PIPE_BUF"))#ifdef _POSIX_PIPE_BUF return _POSIX_PIPE_BUF;#else return 0;#endif if (strEQ(name, "_POSIX_SAVED_IDS"))#ifdef _POSIX_SAVED_IDS return _POSIX_SAVED_IDS;#else return 0;#endif if (strEQ(name, "_POSIX_SSIZE_MAX"))#ifdef _POSIX_SSIZE_MAX return _POSIX_SSIZE_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_STREAM_MAX"))#ifdef _POSIX_STREAM_MAX return _POSIX_STREAM_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_TZNAME_MAX"))#ifdef _POSIX_TZNAME_MAX return _POSIX_TZNAME_MAX;#else return 0;#endif if (strEQ(name, "_POSIX_VDISABLE"))#ifdef _POSIX_VDISABLE return _POSIX_VDISABLE;#else return 0;#endif if (strEQ(name, "_POSIX_VERSION"))#ifdef _POSIX_VERSION return _POSIX_VERSION;#else return 0;#endif break; } if (strnEQ(name, "_SC_", 4)) { if (strEQ(name, "_SC_ARG_MAX"))#if defined(_SC_ARG_MAX) || HINT_SC_EXIST return _SC_ARG_MAX;#else goto not_there;#endif if (strEQ(name, "_SC_CHILD_MAX"))#if defined(_SC_CHILD_MAX) || HINT_SC_EXIST return _SC_CHILD_MAX;#else goto not_there;#endif if (strEQ(name, "_SC_CLK_TCK"))#if defined(_SC_CLK_TCK) || HINT_SC_EXIST return _SC_CLK_TCK;#else goto not_there;#endif if (strEQ(name, "_SC_JOB_CONTROL"))#if defined(_SC_JOB_CONTROL) || HINT_SC_EXIST return _SC_JOB_CONTROL;#else goto not_there;#endif if (strEQ(name, "_SC_NGROUPS_MAX"))#if defined(_SC_NGROUPS_MAX) || HINT_SC_EXIST return _SC_NGROUPS_MAX;#else goto not_there;#endif if (strEQ(name, "_SC_OPEN_MAX"))#if defined(_SC_OPEN_MAX) || HINT_SC_EXIST return _SC_OPEN_MAX;#else goto not_there;#endif if (strEQ(name, "_SC_SAVED_IDS"))#if defined(_SC_SAVED_IDS) || HINT_SC_EXIST return _SC_SAVED_IDS;#else goto not_there;#endif if (strEQ(name, "_SC_STREAM_MAX"))#if defined(_SC_STREAM_MAX) || HINT_SC_EXIST return _SC_STREAM_MAX;#else goto not_there;#endif if (strEQ(name, "_SC_TZNAME_MAX"))#if defined(_SC_TZNAME_MAX) || HINT_SC_EXIST return _SC_TZNAME_MAX;#else goto not_there;#endif if (strEQ(name, "_SC_VERSION"))#if defined(_SC_VERSION) || HINT_SC_EXIST return _SC_VERSION;#else goto not_there;#endif break; } } errno = EINVAL; return 0;not_there: errno = ENOENT; return 0;}MODULE = SigSet PACKAGE = POSIX::SigSet PREFIX = sigPOSIX::SigSetnew(packname = "POSIX::SigSet", ...) char * packname CODE: { int i; New(0, RETVAL, 1, sigset_t); sigemptyset(RETVAL); for (i = 1; i < items; i++) sigaddset(RETVAL, SvIV(ST(i))); } OUTPUT: RETVALvoidDESTROY(sigset) POSIX::SigSet sigset CODE: Safefree(sigset);SysRetsigaddset(sigset, sig) POSIX::SigSet sigset int sigSysRetsigdelset(sigset, sig) POSIX::SigSet sigset int sigSysRetsigemptyset(sigset) POSIX::SigSet sigsetSysRetsigfillset(sigset) POSIX::SigSet sigsetintsigismember(sigset, sig) POSIX::SigSet sigset int sigMODULE = Termios PACKAGE = POSIX::Termios PREFIX = cfPOSIX::Termiosnew(packname = "POSIX::Termios", ...) char * packname CODE: {#ifdef I_TERMIOS New(0, RETVAL, 1, struct termios);#else not_here("termios"); RETVAL = 0;#endif } OUTPUT: RETVALvoidDESTROY(termios_ref) POSIX::Termios termios_ref CODE:#ifdef I_TERMIOS Safefree(termios_ref);#else not_here("termios");#endifSysRetgetattr(termios_ref, fd = 0) POSIX::Termios termios_ref int fd CODE: RETVAL = tcgetattr(fd, termios_ref); OUTPUT: RETVALSysRetsetattr(termios_ref, fd = 0, optional_actions = 0) POSIX::Termios termios_ref int fd int optional_actions CODE: RETVAL = tcsetattr(fd, optional_actions, termios_ref); OUTPUT: RETVALspeed_tcfgetispeed(termios_ref) POSIX::Termios termios_refspeed_tcfgetospeed(termios_ref) POSIX::Termios termios_reftcflag_tgetiflag(termios_ref) POSIX::Termios termios_ref CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ RETVAL = termios_ref->c_iflag;#else not_here("getiflag"); RETVAL = 0;#endif OUTPUT: RETVALtcflag_tgetoflag(termios_ref) POSIX::Termios termios_ref CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ RETVAL = termios_ref->c_oflag;#else not_here("getoflag"); RETVAL = 0;#endif OUTPUT: RETVALtcflag_tgetcflag(termios_ref) POSIX::Termios termios_ref CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ RETVAL = termios_ref->c_cflag;#else not_here("getcflag"); RETVAL = 0;#endif OUTPUT: RETVALtcflag_tgetlflag(termios_ref) POSIX::Termios termios_ref CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ RETVAL = termios_ref->c_lflag;#else not_here("getlflag"); RETVAL = 0;#endif OUTPUT: RETVALcc_tgetcc(termios_ref, ccix) POSIX::Termios termios_ref int ccix CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ if (ccix >= NCCS) croak("Bad getcc subscript"); RETVAL = termios_ref->c_cc[ccix];#else not_here("getcc"); RETVAL = 0;#endif OUTPUT: RETVALSysRetcfsetispeed(termios_ref, speed) POSIX::Termios termios_ref speed_t speedSysRetcfsetospeed(termios_ref, speed) POSIX::Termios termios_ref speed_t speedvoidsetiflag(termios_ref, iflag) POSIX::Termios termios_ref tcflag_t iflag CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ termios_ref->c_iflag = iflag;#else not_here("setiflag");#endifvoidsetoflag(termios_ref, oflag) POSIX::Termios termios_ref tcflag_t oflag CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ termios_ref->c_oflag = oflag;#else not_here("setoflag");#endifvoidsetcflag(termios_ref, cflag) POSIX::Termios termios_ref tcflag_t cflag CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ termios_ref->c_cflag = cflag;#else not_here("setcflag");#endifvoidsetlflag(termios_ref, lflag) POSIX::Termios termios_ref tcflag_t lflag CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ termios_ref->c_lflag = lflag;#else not_here("setlflag");#endifvoidsetcc(termios_ref, ccix, cc) POSIX::Termios termios_ref int ccix cc_t cc CODE:#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */ if (ccix >= NCCS) croak("Bad setcc subscript"); termios_ref->c_cc[ccix] = cc;#else not_here("setcc");#endifMODULE = POSIX PACKAGE = POSIXNVconstant(name,arg) char * name int argintisalnum(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isalnum(*s)) RETVAL = 0; OUTPUT: RETVALintisalpha(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isalpha(*s)) RETVAL = 0; OUTPUT: RETVALintiscntrl(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!iscntrl(*s)) RETVAL = 0; OUTPUT: RETVALintisdigit(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isdigit(*s)) RETVAL = 0; OUTPUT: RETVALintisgraph(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isgraph(*s)) RETVAL = 0; OUTPUT: RETVALintislower(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!islower(*s)) RETVAL = 0; OUTPUT: RETVALintisprint(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isprint(*s)) RETVAL = 0; OUTPUT: RETVALintispunct(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!ispunct(*s)) RETVAL = 0; OUTPUT: RETVALintisspace(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isspace(*s)) RETVAL = 0; OUTPUT: RETVALintisupper(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isupper(*s)) RETVAL = 0; OUTPUT: RETVALintisxdigit(charstring) unsigned char * charstring CODE: unsigned char *s = charstring; unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */ for (RETVAL = 1; RETVAL && s < e; s++) if (!isxdigit(*s)) RETVAL = 0; OUTPUT: RETVALSysRetopen(filename, flags = O_RDONLY, mode = 0666) char * filename int flags Mode_t mode CODE: if (flags & (O_APPEND|O_CREAT|O_TRUNC|O_RDWR|O_WRONLY|O_EXCL)) TAINT_PROPER("open"); RETVAL = open(filename, flags, mode); OUTPUT: RETVALHV *localeconv() CODE:#ifdef HAS_LOCALECONV struct lconv *lcbuf; RETVAL = newHV(); if ((lcbuf = localeconv())) { /* the strings */ if (lcbuf->decimal_point && *lcbuf->decimal_point) hv_store(RETVAL, "decimal_point", 13, newSVpv(lcbuf->decimal_point, 0), 0); if (lcbuf->thousands_sep && *lcbuf->thousands_sep) hv_store(RETVAL, "thousands_sep", 13, newSVpv(lcbuf->thousands_sep, 0), 0);#ifndef NO_LOCALECONV_GROUPING if (lcbuf->grouping && *lcbuf->grouping) hv_store(RETVAL, "grouping", 8, newSVpv(lcbuf->grouping, 0), 0);#endif if (lcbuf->int_curr_symbol && *lcbuf->int_curr_symbol) hv_store(RETVAL, "int_curr_symbol", 15, newSVpv(lcbuf->int_curr_symbol, 0), 0); if (lcbuf->currency_symbol && *lcbuf->currency_symbol) hv_store(RETVAL, "currency_symbol", 15, newSVpv(lcbuf->currency_symbol, 0), 0); if (lcbuf->mon_decimal_point && *lcbuf->mon_decimal_point) hv_store(RETVAL, "mon_decimal_point", 17, newSVpv(lcbuf->mon_decimal_point, 0), 0);#ifndef NO_LOCALECONV_MON_THOUSANDS_SEP if (lcbuf->mon_thousands_sep && *lcbuf->mon_thousands_sep) hv_store(RETVAL, "mon_thousands_sep", 17, newSVpv(lcbuf->mon_thousands_sep, 0), 0);#endif #ifndef NO_LOCALECONV_MON_GROUPING if (lcbuf->mon_grouping && *lcbuf->mon_grouping) hv_store(RETVAL, "mon_grouping", 12, newSVpv(lcbuf->mon_grouping, 0), 0);#endif if (lcbuf->positive_sign && *lcbuf->positive_sign) hv_store(RETVAL, "positive_sign", 13, newSVpv(lcbuf->positive_sign, 0), 0); if (lcbuf->negative_sign && *lcbuf->negative_sign) hv_store(RETVAL, "negative_sign", 13, newSVpv(lcbuf->negative_sign, 0), 0); /* the integers */ if (lcbuf->int_frac_digits != CHAR_MAX) hv_store(RETVAL, "int_frac_digits", 15, newSViv(lcbuf->int_frac_digits), 0); if (lcbuf->frac_digits != CHAR_MAX) hv_store(RETVAL, "frac_digits", 11, newSViv(lcbuf->frac_digits), 0); if (lcbuf->p_cs_precedes != CHAR_MAX) hv_store(RETVAL, "p_cs_precedes", 13, newSViv(lcbuf->p_cs_precedes), 0); if (lcbuf->p_sep_by_space != CHAR_MAX) hv_store(RETVAL, "p_sep_by_space", 14, newSViv(lcbuf->p_sep_by_space), 0); if (lcbuf->n_cs_precedes != CHAR_MAX) hv_store(RETVAL, "n_cs_precedes", 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -