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

📄 typemap

📁 source of perl for linux application,
💻
字号:
# basic C typesint			T_IVunsigned		T_UVunsigned int		T_UVlong			T_IVunsigned long		T_UVshort			T_IVunsigned short		T_UVchar			T_CHARunsigned char		T_U_CHARchar *			T_PVunsigned char *		T_PVconst char *		T_PVcaddr_t			T_PVwchar_t *		T_PVwchar_t			T_IVbool_t			T_IVsize_t			T_UVssize_t			T_IVtime_t			T_NVunsigned long *		T_OPAQUEPTRchar **			T_PACKEDARRAYvoid *			T_PTRTime_t *		T_PVSV *			T_SVSVREF			T_SVREFAV *			T_AVREFHV *			T_HVREFCV *			T_CVREFIV			T_IVUV			T_UVNV                      T_NVI32			T_IVI16			T_IVI8			T_IVSTRLEN			T_UVU32			T_U_LONGU16			T_U_SHORTU8			T_UVResult			T_U_CHARBoolean			T_BOOLfloat                   T_FLOATdouble			T_DOUBLESysRet			T_SYSRETSysRetLong		T_SYSRETFILE *			T_STDIOPerlIO *		T_INOUTFileHandle		T_PTROBJInputStream		T_INInOutStream		T_INOUTOutputStream		T_OUTbool			T_BOOL#############################################################################INPUTT_SV	$var = $argT_SVREF	if (SvROK($arg))	    $var = (SV*)SvRV($arg);	else	    Perl_croak(aTHX_ \"$var is not a reference\")T_AVREF	if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV)	    $var = (AV*)SvRV($arg);	else	    Perl_croak(aTHX_ \"$var is not an array reference\")T_HVREF	if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV)	    $var = (HV*)SvRV($arg);	else	    Perl_croak(aTHX_ \"$var is not a hash reference\")T_CVREF	if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVCV)	    $var = (CV*)SvRV($arg);	else	    Perl_croak(aTHX_ \"$var is not a code reference\")T_SYSRET	$var NOT IMPLEMENTEDT_UV	$var = ($type)SvUV($arg)T_IV	$var = ($type)SvIV($arg)T_INT	$var = (int)SvIV($arg)T_ENUM	$var = ($type)SvIV($arg)T_BOOL	$var = (bool)SvTRUE($arg)T_U_INT	$var = (unsigned int)SvUV($arg)T_SHORT	$var = (short)SvIV($arg)T_U_SHORT	$var = (unsigned short)SvUV($arg)T_LONG	$var = (long)SvIV($arg)T_U_LONG	$var = (unsigned long)SvUV($arg)T_CHAR	$var = (char)*SvPV_nolen($arg)T_U_CHAR	$var = (unsigned char)SvUV($arg)T_FLOAT	$var = (float)SvNV($arg)T_NV	$var = ($type)SvNV($arg)T_DOUBLE	$var = (double)SvNV($arg)T_PV	$var = ($type)SvPV_nolen($arg)T_PTR	$var = INT2PTR($type,SvIV($arg))T_PTRREF	if (SvROK($arg)) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = INT2PTR($type,tmp);	}	else	    Perl_croak(aTHX_ \"$var is not a reference\")T_REF_IV_REF	if (sv_isa($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = *INT2PTR($type *, tmp);	}	else	    Perl_croak(aTHX_ \"$var is not of type ${ntype}\")T_REF_IV_PTR	if (sv_isa($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = INT2PTR($type, tmp);	}	else	    Perl_croak(aTHX_ \"$var is not of type ${ntype}\")T_PTROBJ	if (sv_derived_from($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = INT2PTR($type,tmp);	}	else	    Perl_croak(aTHX_ \"$var is not of type ${ntype}\")T_PTRDESC	if (sv_isa($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    ${type}_desc = (\U${type}_DESC\E*) tmp;	    $var = ${type}_desc->ptr;	}	else	    Perl_croak(aTHX_ \"$var is not of type ${ntype}\")T_REFREF	if (SvROK($arg)) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = *INT2PTR($type,tmp);	}	else	    Perl_croak(aTHX_ \"$var is not a reference\")T_REFOBJ	if (sv_isa($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = *INT2PTR($type,tmp);	}	else	    Perl_croak(aTHX_ \"$var is not of type ${ntype}\")T_OPAQUE	$var = *($type *)SvPV_nolen($arg)T_OPAQUEPTR	$var = ($type)SvPV_nolen($arg)T_PACKED	$var = XS_unpack_$ntype($arg)T_PACKEDARRAY	$var = XS_unpack_$ntype($arg)T_CALLBACK	$var = make_perl_cb_$type($arg)T_ARRAY	U32 ix_$var = $argoff;	$var = $ntype(items -= $argoff);	while (items--) {	    DO_ARRAY_ELEM;	    ix_$var++;	}        /* this is the number of elements in the array */        ix_$var -= $argoffT_STDIO	$var = PerlIO_findFILE(IoIFP(sv_2io($arg)))T_IN	$var = IoIFP(sv_2io($arg))T_INOUT	$var = IoIFP(sv_2io($arg))T_OUT	$var = IoOFP(sv_2io($arg))#############################################################################OUTPUTT_SV	$arg = $var;T_SVREF	$arg = newRV((SV*)$var);T_AVREF	$arg = newRV((SV*)$var);T_HVREF	$arg = newRV((SV*)$var);T_CVREF	$arg = newRV((SV*)$var);T_IV	sv_setiv($arg, (IV)$var);T_UV	sv_setuv($arg, (UV)$var);T_INT	sv_setiv($arg, (IV)$var);T_SYSRET	if ($var != -1) {	    if ($var == 0)		sv_setpvn($arg, "0 but true", 10);	    else		sv_setiv($arg, (IV)$var);	}T_ENUM	sv_setiv($arg, (IV)$var);T_BOOL	$arg = boolSV($var);T_U_INT	sv_setuv($arg, (UV)$var);T_SHORT	sv_setiv($arg, (IV)$var);T_U_SHORT	sv_setuv($arg, (UV)$var);T_LONG	sv_setiv($arg, (IV)$var);T_U_LONG	sv_setuv($arg, (UV)$var);T_CHAR	sv_setpvn($arg, (char *)&$var, 1);T_U_CHAR	sv_setuv($arg, (UV)$var);T_FLOAT	sv_setnv($arg, (double)$var);T_NV	sv_setnv($arg, (NV)$var);T_DOUBLE	sv_setnv($arg, (double)$var);T_PV	sv_setpv((SV*)$arg, $var);T_PTR	sv_setiv($arg, PTR2IV($var));T_PTRREF	sv_setref_pv($arg, Nullch, (void*)$var);T_REF_IV_REF	sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));T_REF_IV_PTR	sv_setref_pv($arg, \"${ntype}\", (void*)$var);T_PTROBJ	sv_setref_pv($arg, \"${ntype}\", (void*)$var);T_PTRDESC	sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));T_REFREF	NOT_IMPLEMENTEDT_REFOBJ	NOT IMPLEMENTEDT_OPAQUE	sv_setpvn($arg, (char *)&$var, sizeof($var));T_OPAQUEPTR	sv_setpvn($arg, (char *)$var, sizeof(*$var));T_PACKED	XS_pack_$ntype($arg, $var);T_PACKEDARRAY	XS_pack_$ntype($arg, $var, count_$ntype);T_DATAUNIT		sv_setpvn($arg, $var.chp(), $var.size());T_CALLBACK	sv_setpvn($arg, $var.context.value().chp(),		$var.context.value().size());T_ARRAY        {	    U32 ix_$var;	    EXTEND(SP,size_$var);	    for (ix_$var = 0; ix_$var < size_$var; ix_$var++) {		ST(ix_$var) = sv_newmortal();	DO_ARRAY_ELEM	    }        }T_STDIO	{	    GV *gv = newGVgen("$Package");	    PerlIO *fp = PerlIO_importFILE($var,0);	    if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) )		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));	    else		$arg = &PL_sv_undef;	}T_IN	{	    GV *gv = newGVgen("$Package");	    if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));	    else		$arg = &PL_sv_undef;	}T_INOUT	{	    GV *gv = newGVgen("$Package");	    if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));	    else		$arg = &PL_sv_undef;	}T_OUT	{	    GV *gv = newGVgen("$Package");	    if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));	    else		$arg = &PL_sv_undef;	}

⌨️ 快捷键说明

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