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

📄 ppport.pm

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 PM
📖 第 1 页 / 共 5 页
字号:
|>|>Including this header is the first major one. This alone will give you|>access to a large part of the Perl API that hasn't been available in|>earlier Perl releases. Use|>|>    perl ppport.h --list-provided|>|>to see which API elements are provided by ppport.h.|>|>=item *|>|>You should avoid using deprecated parts of the API. For example, using|>global Perl variables without the C<PL_> prefix is deprecated. Also,|>some API functions used to have a C<perl_> prefix. Using this form is|>also deprecated. You can safely use the supported API, as F<ppport.h>|>will provide wrappers for older Perl versions.|>|>=item *|>|>If you use one of a few functions or variables that were not present in|>earlier versions of Perl, and that can't be provided using a macro, you|>have to explicitly request support for these functions by adding one or|>more C<#define>s in your source code before the inclusion of F<ppport.h>.|>|>These functions or variables will be marked C<explicit> in the list shown|>by C<--list-provided>.|>|>Depending on whether you module has a single or multiple files that|>use such functions or variables, you want either C<static> or global|>variants.|>|>For a C<static> function or variable (used only in a single source|>file), use:|>|>    #define NEED_function|>    #define NEED_variable|>|>For a global function or variable (used in multiple source files),|>use:|>|>    #define NEED_function_GLOBAL|>    #define NEED_variable_GLOBAL|>|>Note that you mustn't have more than one global request for the|>same function or variable in your project.|>|>    Function / Variable       Static Request               Global Request|>    -----------------------------------------------------------------------------------------|>    PL_signals                NEED_PL_signals              NEED_PL_signals_GLOBAL|>    eval_pv()                 NEED_eval_pv                 NEED_eval_pv_GLOBAL|>    grok_bin()                NEED_grok_bin                NEED_grok_bin_GLOBAL|>    grok_hex()                NEED_grok_hex                NEED_grok_hex_GLOBAL|>    grok_number()             NEED_grok_number             NEED_grok_number_GLOBAL|>    grok_numeric_radix()      NEED_grok_numeric_radix      NEED_grok_numeric_radix_GLOBAL|>    grok_oct()                NEED_grok_oct                NEED_grok_oct_GLOBAL|>    load_module()             NEED_load_module             NEED_load_module_GLOBAL|>    my_snprintf()             NEED_my_snprintf             NEED_my_snprintf_GLOBAL|>    my_strlcat()              NEED_my_strlcat              NEED_my_strlcat_GLOBAL|>    my_strlcpy()              NEED_my_strlcpy              NEED_my_strlcpy_GLOBAL|>    newCONSTSUB()             NEED_newCONSTSUB             NEED_newCONSTSUB_GLOBAL|>    newRV_noinc()             NEED_newRV_noinc             NEED_newRV_noinc_GLOBAL|>    newSVpvn_share()          NEED_newSVpvn_share          NEED_newSVpvn_share_GLOBAL|>    sv_2pv_flags()            NEED_sv_2pv_flags            NEED_sv_2pv_flags_GLOBAL|>    sv_2pvbyte()              NEED_sv_2pvbyte              NEED_sv_2pvbyte_GLOBAL|>    sv_catpvf_mg()            NEED_sv_catpvf_mg            NEED_sv_catpvf_mg_GLOBAL|>    sv_catpvf_mg_nocontext()  NEED_sv_catpvf_mg_nocontext  NEED_sv_catpvf_mg_nocontext_GLOBAL|>    sv_pvn_force_flags()      NEED_sv_pvn_force_flags      NEED_sv_pvn_force_flags_GLOBAL|>    sv_setpvf_mg()            NEED_sv_setpvf_mg            NEED_sv_setpvf_mg_GLOBAL|>    sv_setpvf_mg_nocontext()  NEED_sv_setpvf_mg_nocontext  NEED_sv_setpvf_mg_nocontext_GLOBAL|>    vload_module()            NEED_vload_module            NEED_vload_module_GLOBAL|>    vnewSVpvf()               NEED_vnewSVpvf               NEED_vnewSVpvf_GLOBAL|>    warner()                  NEED_warner                  NEED_warner_GLOBAL|>|>To avoid namespace conflicts, you can change the namespace of the|>explicitly exported functions / variables using the C<DPPP_NAMESPACE>|>macro. Just C<#define> the macro before including C<ppport.h>:|>|>    #define DPPP_NAMESPACE MyOwnNamespace_|>    #include "ppport.h"|>|>The default namespace is C<DPPP_>.|>|>=back|>|>The good thing is that most of the above can be checked by running|>F<ppport.h> on your source code. See the next section for|>details.|>|>=head1 EXAMPLES|>|>To verify whether F<ppport.h> is needed for your module, whether you|>should make any changes to your code, and whether any special defines|>should be used, F<ppport.h> can be run as a Perl script to check your|>source code. Simply say:|>|>    perl ppport.h|>|>The result will usually be a list of patches suggesting changes|>that should at least be acceptable, if not necessarily the most|>efficient solution, or a fix for all possible problems.|>|>If you know that your XS module uses features only available in|>newer Perl releases, if you're aware that it uses C++ comments,|>and if you want all suggestions as a single patch file, you could|>use something like this:|>|>    perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff|>|>If you only want your code to be scanned without any suggestions|>for changes, use:|>|>    perl ppport.h --nochanges|>|>You can specify a different C<diff> program or options, using|>the C<--diff> option:|>|>    perl ppport.h --diff='diff -C 10'|>|>This would output context diffs with 10 lines of context.|>|>If you want to create patched copies of your files instead, use:|>|>    perl ppport.h --copy=.new|>|>To display portability information for the C<newSVpvn> function,|>use:|>|>    perl ppport.h --api-info=newSVpvn|>|>Since the argument to C<--api-info> can be a regular expression,|>you can use|>|>    perl ppport.h --api-info=/_nomg$/|>|>to display portability information for all C<_nomg> functions or|>|>    perl ppport.h --api-info=/./|>|>to display information for all known API elements.|>|>=head1 BUGS|>|>If this version of F<ppport.h> is causing failure during|>the compilation of this module, please check if newer versions|>of either this module or C<Devel::PPPort> are available on CPAN|>before sending a bug report.|>|>If F<ppport.h> was generated using the latest version of|>C<Devel::PPPort> and is causing failure of this module, please|>file a bug report using the CPAN Request Tracker at L<http://rt.cpan.org/>.|>|>Please include the following information:|>|>=over 4|>|>=item 1.|>|>The complete output from running "perl -V"|>|>=item 2.|>|>This file.|>|>=item 3.|>|>The name and version of the module you were trying to build.|>|>=item 4.|>|>A full log of the build that failed.|>|>=item 5.|>|>Any other information that you think could be relevant.|>|>=back|>|>For the latest version of this code, please get the C<Devel::PPPort>|>module from CPAN.|>|>=head1 COPYRIGHT|>|>Version 3.x, Copyright (c) 2004-2007, Marcus Holland-Moritz.|>|>Version 2.x, Copyright (C) 2001, Paul Marquess.|>|>Version 1.x, Copyright (C) 1999, Kenneth Albanowski.|>|>This program is free software; you can redistribute it and/or|>modify it under the same terms as Perl itself.|>|>=head1 SEE ALSO|>|>See L<Devel::PPPort>.|>|>=cutuse strict;# Disable broken TRIE-optimizationBEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 }my $VERSION = __VERSION__;my %opt = (  quiet     => 0,  diag      => 1,  hints     => 1,  changes   => 1,  cplusplus => 0,  filter    => 1,  strip     => 0,  version   => 0,);my($ppport) = $0 =~ /([\w.]+)$/;my $LF = '(?:\r\n|[\r\n])';   # line feedmy $HS = "[ \t]";             # horizontal whitespace# Never use C comments in this file!my $ccs  = '/'.'*';my $cce  = '*'.'/';my $rccs = quotemeta $ccs;my $rcce = quotemeta $cce;eval {  require Getopt::Long;  Getopt::Long::GetOptions(\%opt, qw(    help quiet diag! filter! hints! changes! cplusplus strip version    patch=s copy=s diff=s compat-version=s    list-provided list-unsupported api-info=s  )) or usage();};if ($@ and grep /^-/, @ARGV) {  usage() if "@ARGV" =~ /^--?h(?:elp)?$/;  die "Getopt::Long not found. Please don't use any options.\n";}if ($opt{version}) {  print "This is $0 $VERSION.\n";  exit 0;}usage() if $opt{help};strip() if $opt{strip};if (exists $opt{'compat-version'}) {  my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) };  if ($@) {    die "Invalid version number format: '$opt{'compat-version'}'\n";  }  die "Only Perl 5 is supported\n" if $r != 5;  die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000;  $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s;}else {  $opt{'compat-version'} = 5;}my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/                ? ( $1 => {                      ($2                  ? ( base     => $2 ) : ()),                      ($3                  ? ( todo     => $3 ) : ()),                      (index($4, 'v') >= 0 ? ( varargs  => 1  ) : ()),                      (index($4, 'p') >= 0 ? ( provided => 1  ) : ()),                      (index($4, 'n') >= 0 ? ( nothxarg => 1  ) : ()),                    } )                : die "invalid spec: $_" } qw(AvFILLp|5.004050||pAvFILL|||CLASS|||nCX_CURPAD_SAVE|||CX_CURPAD_SV|||CopFILEAV|5.006000||pCopFILEGV_set|5.006000||pCopFILEGV|5.006000||pCopFILESV|5.006000||pCopFILE_set|5.006000||pCopFILE|5.006000||pCopSTASHPV_set|5.006000||pCopSTASHPV|5.006000||pCopSTASH_eq|5.006000||pCopSTASH_set|5.006000||pCopSTASH|5.006000||pCopyD|5.009002||pCopy|||CvPADLIST|||CvSTASH|||CvWEAKOUTSIDE|||DEFSV|5.004050||pEND_EXTERN_C|5.005000||pENTER|||ERRSV|5.004050||pEXTEND|||EXTERN_C|5.005000||pF0convert|||nFREETMPS|||GIMME_V||5.004000|nGIMME|||nGROK_NUMERIC_RADIX|5.007002||pG_ARRAY|||G_DISCARD|||G_EVAL|||G_NOARGS|||G_SCALAR|||G_VOID||5.004000|GetVars|||GvSV|||Gv_AMupdate|||HEf_SVKEY||5.004000|HeHASH||5.004000|HeKEY||5.004000|HeKLEN||5.004000|HePV||5.004000|HeSVKEY_force||5.004000|HeSVKEY_set||5.004000|HeSVKEY||5.004000|HeVAL||5.004000|HvNAME|||INT2PTR|5.006000||pIN_LOCALE_COMPILETIME|5.007002||pIN_LOCALE_RUNTIME|5.007002||pIN_LOCALE|5.007002||pIN_PERL_COMPILETIME|5.008001||pIS_NUMBER_GREATER_THAN_UV_MAX|5.007002||pIS_NUMBER_INFINITY|5.007002||pIS_NUMBER_IN_UV|5.007002||pIS_NUMBER_NAN|5.007003||pIS_NUMBER_NEG|5.007002||pIS_NUMBER_NOT_INT|5.007002||pIVSIZE|5.006000||pIVTYPE|5.006000||pIVdf|5.006000||pLEAVE|||LVRET|||MARK|||MULTICALL||5.009005|MY_CXT_CLONE|5.009002||pMY_CXT_INIT|5.007003||pMY_CXT|5.007003||pMoveD|5.009002||pMove|||NOOP|5.005000||pNUM2PTR|5.006000||pNVTYPE|5.006000||pNVef|5.006001||pNVff|5.006001||pNVgf|5.006001||pNewxc|5.009003||pNewxz|5.009003||pNewx|5.009003||pNullav|||Nullch|||Nullcv|||Nullhv|||Nullsv|||ORIGMARK|||PAD_BASE_SV|||PAD_CLONE_VARS|||PAD_COMPNAME_FLAGS|||PAD_COMPNAME_GEN_set|||PAD_COMPNAME_GEN|||PAD_COMPNAME_OURSTASH|||PAD_COMPNAME_PV|||PAD_COMPNAME_TYPE|||PAD_RESTORE_LOCAL|||PAD_SAVE_LOCAL|||PAD_SAVE_SETNULLPAD|||PAD_SETSV|||PAD_SET_CUR_NOSAVE|||PAD_SET_CUR|||PAD_SVl|||PAD_SV|||PERL_ABS|5.008001||pPERL_BCDVERSION|5.009005||pPERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||pPERL_HASH|5.004000||pPERL_INT_MAX|5.004000||pPERL_INT_MIN|5.004000||pPERL_LONG_MAX|5.004000||pPERL_LONG_MIN|5.004000||pPERL_MAGIC_arylen|5.007002||pPERL_MAGIC_backref|5.007002||pPERL_MAGIC_bm|5.007002||pPERL_MAGIC_collxfrm|5.007002||pPERL_MAGIC_dbfile|5.007002||pPERL_MAGIC_dbline|5.007002||pPERL_MAGIC_defelem|5.007002||pPERL_MAGIC_envelem|5.007002||pPERL_MAGIC_env|5.007002||pPERL_MAGIC_ext|5.007002||pPERL_MAGIC_fm|5.007002||pPERL_MAGIC_glob|5.009005||pPERL_MAGIC_isaelem|5.007002||pPERL_MAGIC_isa|5.007002||pPERL_MAGIC_mutex|5.009005||pPERL_MAGIC_nkeys|5.007002||pPERL_MAGIC_overload_elem|5.007002||pPERL_MAGIC_overload_table|5.007002||pPERL_MAGIC_overload|5.007002||pPERL_MAGIC_pos|5.007002||pPERL_MAGIC_qr|5.007002||pPERL_MAGIC_regdata|5.007002||pPERL_MAGIC_regdatum|5.007002||pPERL_MAGIC_regex_global|5.007002||pPERL_MAGIC_shared_scalar|5.007003||pPERL_MAGIC_shared|5.007003||pPERL_MAGIC_sigelem|5.007002||pPERL_MAGIC_sig|5.007002||pPERL_MAGIC_substr|5.007002||pPERL_MAGIC_sv|5.007002||pPERL_MAGIC_taint|5.007002||pPERL_MAGIC_tiedelem|5.007002||pPERL_MAGIC_tiedscalar|5.007002||pPERL_MAGIC_tied|5.007002||pPERL_MAGIC_utf8|5.008001||pPERL_MAGIC_uvar_elem|5.007003||pPERL_MAGIC_uvar|5.007002||pPERL_MAGIC_vec|5.007002||pPERL_MAGIC_vstring|5.008001||pPERL_QUAD_MAX|5.004000||pPERL_QUAD_MIN|5.004000||pPERL_REVISION|5.006000||pPERL_SCAN_ALLOW_UNDERSCORES|5.007003||pPERL_SCAN_DISALLOW_PREFIX|5.007003||pPERL_SCAN_GREATER_THAN_UV_MAX|5.007003||pPERL_SCAN_SILENT_ILLDIGIT|5.008001||pPERL_SHORT_MAX|5.004000||pPERL_SHORT_MIN|5.004000||pPERL_SIGNALS_UNSAFE_FLAG|5.008001||pPERL_SUBVERSION|5.006000||pPERL_UCHAR_MAX|5.004000||pPERL_UCHAR_MIN|5.004000||pPERL_UINT_MAX|5.004000||pPERL_UINT_MIN|5.004000||pPERL_ULONG_MAX|5.004000||pPERL_ULONG_MIN|5.004000||pPERL_UNUSED_ARG|5.009003||pPERL_UNUSED_CONTEXT|5.009004||pPERL_UNUSED_DECL|5.007002||pPERL_UNUSED_VAR|5.007002||pPERL_UQUAD_MAX|5.004000||pPERL_UQUAD_MIN|5.004000||pPERL_USE_GCC_BRACE_GROUPS|5.009004||pPERL_USHORT_MAX|5.004000||pPERL_USHORT_MIN|5.004000||pPERL_VERSION|5.006000||pPL_DBsignal|5.005000||pPL_DBsingle|||pnPL_DBsub|||pnPL_DBtrace|||pnPL_Sv|5.005000||pPL_compiling|5.004050||pPL_copline|5.009005||pPL_curcop|5.004050||pPL_curstash|5.004050||pPL_debstash|5.004050||pPL_defgv|5.004050||pPL_diehook|5.004050||pPL_dirty|5.004050||pPL_dowarn|||pnPL_errgv|5.004050||pPL_expect|5.009005||pPL_hexdigit|5.005000||pPL_hints|5.005000||pPL_last_in_gv|||nPL_laststatval|5.005000||pPL_modglobal||5.005000|nPL_na|5.004050||pnPL_no_modify|5.006000||pPL_ofs_sv|||nPL_perl_destruct_level|5.004050||pPL_perldb|5.004050||pPL_ppaddr|5.006000||pPL_rsfp_filters|5.004050||pPL_rsfp|5.004050||pPL_rs|||nPL_signals|5.008001||pPL_stack_base|5.004050||pPL_stack_sp|5.004050||pPL_statcache|5.005000||pPL_stdingv|5.004050||pPL_sv_arenaroot|5.004050||pPL_sv_no|5.004050||pnPL_sv_undef|5.004050||pnPL_sv_yes|5.004050||pnPL_tainted|5.004050||pPL_tainting|5.004050||pPOP_MULTICALL||5.009005|POPi|||nPOPl|||nPOPn|||nPOPpbytex||5.007001|nPOPpx||5.005030|nPOPp|||nPOPs|||nPTR2IV|5.006000||pPTR2NV|5.006000||pPTR2UV|5.006000||pPTR2ul|5.007001||pPTRV|5.006000||pPUSHMARK|||PUSH_MULTICALL||5.009005|PUSHi|||PUSHmortal|5.009002||pPUSHn|||PUSHp|||PUSHs|||PUSHu|5.004000||pPUTBACK|||PerlIO_clearerr||5.007003|PerlIO_close||5.007003|PerlIO_context_layers||5.009004|PerlIO_eof||5.007003|PerlIO_error||5.007003|PerlIO_fileno||5.007003|PerlIO_fill||5.007003|PerlIO_flush||5.007003|PerlIO_get_base||5.007003|PerlIO_get_bufsiz||5.007003|PerlIO_get_cnt||5.007003|PerlIO_get_ptr||5.007003|PerlIO_read||5.007003|PerlIO_seek||5.007003|PerlIO_set_cnt||5.007003|PerlIO_set_ptrcnt||5.007003|PerlIO_setlinebuf||5.007003|PerlIO_stderr||5.007003|PerlIO_stdin||5.007003|PerlIO_stdout||5.007003|PerlIO_tell||5.007003|PerlIO_unread||5.007003|PerlIO_write||5.007003|Perl_signbit||5.009005|nPoisonFree|5.009004||pPoisonNew|5.009004||pPoisonWith|5.009004||pPoison|5.008000||pRETVAL|||nRenewc|||Renew|||SAVECLEARSV|||SAVECOMPPAD|||SAVEPADSV|||SAVETMPS|||SAVE_DEFSV|5.004050||pSPAGAIN|||SP|||START_EXTERN_C|5.005000||pSTART_MY_CXT|5.007003||pSTMT_END|||pSTMT_START|||pSTR_WITH_LEN|5.009003||pST|||SV_CONST_RETURN|5.009003||pSV_COW_DROP_PV|5.008001||pSV_COW_SHARED_HASH_KEYS|5.009005||pSV_GMAGIC|5.007002||pSV_HAS_TRAILING_NUL|5.009004||pSV_IMMEDIATE_UNREF|5.007001||pSV_MUTABLE_RETURN|5.009003||pSV_NOSTEAL|5.009002||pSV_SMAGIC|5.009003||pSV_UTF8_NO_ENCODING|5.008001||pSVf|5.006000||pSVt_IV|||SVt_NV|||SVt_PVAV|||SVt_PVCV|||SVt_PVHV|||SVt_PVMG|||SVt_PV|||Safefree|||Slab_Alloc|||Slab_Free|||Slab_to_rw|||StructCopy|||SvCUR_set|||SvCUR|||SvEND|||SvGAMAGIC||5.006001|SvGETMAGIC|5.004050||pSvGROW|||SvIOK_UV||5.006000|SvIOK_notUV||5.006000|SvIOK_off|||SvIOK_only_UV||5.006000|SvIOK_only|||SvIOK_on|||SvIOKp|||SvIOK|||SvIVX|||SvIV_nomg|5.009001||pSvIV_set|||SvIVx|||SvIV|||SvIsCOW_shared_hash||5.008003|SvIsCOW||5.008003|SvLEN_set|||SvLEN|||SvLOCK||5.007003|SvMAGIC_set|5.009003||pSvNIOK_off|||SvNIOKp|||SvNIOK|||SvNOK_off|||SvNOK_only|||SvNOK_on|||SvNOKp|||SvNOK|||SvNVX|||SvNV_set|||SvNVx|||SvNV|||SvOK|||SvOOK|||SvPOK_off|||SvPOK_only_UTF8||5.006000|SvPOK_only|||SvPOK_on|||SvPOKp|||SvPOK|||SvPVX_const|5.009003||pSvPVX_mutable|5.009003||pSvPVX|||SvPV_const|5.009003||pSvPV_flags_const_nolen|5.009003||pSvPV_flags_const|5.009003||pSvPV_flags_mutable|5.009003||pSvPV_flags|5.007002||pSvPV_force_flags_mutable|5.009003||pSvPV_force_flags_nolen|5.009003||pSvPV_force_flags|5.007002||pSvPV_force_mutable|5.009003||pSvPV_force_nolen|5.009003||pSvPV_force_nomg_nolen|5.009003||pSvPV_force_nomg|5.007002||pSvPV_force|||pSvPV_mutable|5.009003||pSvPV_nolen_const|5.009003||pSvPV_nolen|5.006000||pSvPV_nomg_const_nolen|5.009003||pSvPV_nomg_const|5.009003||pSvPV_nomg|5.007002||pSvPV_set|||SvPVbyte_force||5.009002|

⌨️ 快捷键说明

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