锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品美女久久久久av爽,久久亚洲精品成人av无码网站,国产亚洲色婷婷久久99精品http://m.shnenglu.com/changup/category/15635.htmlzh-cnThu, 30 Dec 2010 17:02:55 GMTThu, 30 Dec 2010 17:02:55 GMT60c涓皟鐢╬erl鐨勬祴璇曞皬紼嬪簭錛屽悇縐嶅満鏅戶緇祴璇曚腑http://m.shnenglu.com/changup/archive/2010/12/30/137753.htmlchangupchangupThu, 30 Dec 2010 10:14:00 GMThttp://m.shnenglu.com/changup/archive/2010/12/30/137753.htmlhttp://m.shnenglu.com/changup/comments/137753.htmlhttp://m.shnenglu.com/changup/archive/2010/12/30/137753.html#Feedback0http://m.shnenglu.com/changup/comments/commentRss/137753.htmlhttp://m.shnenglu.com/changup/services/trackbacks/137753.htmltar鍖呬綅緗細http://m.shnenglu.com/Files/changup/c_perl.tar

鏈嫻嬭瘯姣旇緝瀹屾暣鐨勪竴涓猚鏂囦歡錛岃創鍑烘潵錛岃楂樹漢鎸囩偣瀹屽杽錛屼簤鍙栧ぇ瀹跺疄闄呬腑鑳界敤濂斤紝姣曠珶鎰熻鍦ㄧ▼搴忎腑宓屽叆瑙i噴鎬х殑鑴氭湰鏄潪甯稿ソ鐨勶紝灝ゅ叾閽堝澶嶆潅澶氬彉鐨勪笟鍔¢昏緫閮ㄥ垎錛?br>

 

#include <stdio.h>
#include 
<string.h>
#include 
<stdlib.h>
#include 
<EXTERN.h>
#include 
<perl.h>

static PerlInterpreter* my_perl;

#define CALLFUN_BEGIN  dSP; \
          ENTER; \
          SAVETMPS; \
          PUSHMARK(SP);
#define CALLFUN_END  FREETMPS;\
          LEAVE;
           


void initperlenv(int argc, char* argv[])
{
    my_perl 
= perl_alloc();
    perl_construct(my_perl);    
    perl_parse(my_perl, NULL, argc, argv, (
char **)NULL);
}

void destroyperlenv()
{
      perl_destruct(my_perl);
      perl_free(my_perl);    
}

/* 鏅歱erl鏍囬噺鐨勬搷浣?br>*/
void SV_test()
{
    
//鍒涘緩
    SV* sv_i = newSViv(99);
    SV
* sv_n = newSVnv(23.45);
    SV
* sv_p = newSVpv("test string",0);
    
    SV
* funstring = 0;
    
    
//灝嗗彉閲忚緗負mortal錛?/span>
    sv_2mortal(sv_i);
    sv_2mortal(sv_n);
    sv_2mortal(sv_p);    
    
    
//鎺㈡祴綾誨瀷
    if(SvIOK(sv_i))
    {
        printf(
"sv_i is a int type,value=%d\n"*(int*)(sv_i->sv_any));
    }
    
else
    {
        printf(
"sv_i is not a int type\n");
    }
    
if(SvNOK(sv_n))
    {
        printf(
"sv_n is a double type\n");
    }
    
else
    {
        printf(
"sv_n is not a double type\n");
    }
    
if(SvPOK(sv_p))
    {
        printf(
"sv_p is a string type\n");
    }
    
else
    {
        printf(
"sv_p is not a string type\n");
    }
    
    
//鎺㈡祴綾誨瀷錛岃繖嬈℃墦鍗板嚭鐨勬槸綾誨瀷鐨勫畯瀹氫箟
    printf("sv_i.type=%u\n", SvTYPE(sv_i));
    printf(
"sv_n.type=%u\n", SvTYPE(sv_n));
    printf(
"sv_p.type=%u\n", SvTYPE(sv_p));
    
    
//浠ヤ紭緹庣殑鏍煎紡鎵撳嵃鏍囬噺
    sv_dump(sv_i);
    sv_dump(sv_n);
    sv_dump(sv_p);
    
    
//淇敼鍊?/span>
    sv_setiv(sv_i,89);
    sv_dump(sv_i);
    sv_setnv(sv_n,
89.76);
    sv_dump(sv_n);
    sv_setpv(sv_p,
"String changed");
    sv_dump(sv_p);
    
    
//鎿嶄綔pl鑴氭湰涓殑鏂囦歡
    funstring = perl_get_sv("main::getstring",1); //娌℃湁寰楀埌鍊?/span>
    sv_dump(funstring);
}

/* 鎿嶄綔perl鍑芥暟
sub fun1()
{
    $username = shift;
    $arg = shift;
    print "your name=$username,your arg=$arg\n";
    return 88;
}
*/
int call_fun()
{
    
//璋冪敤鍑芥暟鍓嶇殑perl鍫嗘爤鎿嶄綔
    CALLFUN_BEGIN;
    
    
//鍙傛暟鍏ユ爤
    XPUSHs(sv_2mortal(newSVpv("changym",0)));
    XPUSHs(sv_2mortal(newSViv(
32)));
    PUTBACK; 
//琛ㄧず鍙傛暟瀹屼簡
    
    
//璋冪敤鍑芥暟
    perl_call_pv("fun1",G_SCALAR); //G_SCALAR---榪斿洖鏍囬噺;G_ARRAY--榪斿洖鏁扮粍
    /*
    #define G_SCALAR        0
    #define G_ARRAY         1
    #define G_VOID          128     /* skip this bit when adding flags below 
*/
    
    
//extra flags for Perl_call_* routines
    
//#define G_DISCARD       2       /* Call FREETMPS. */
    
//#define G_EVAL          4       /* Assume eval {} around subroutine call. */
    
//#define G_NOARGS        8       /* Don't construct a @_ array. */
    
//#define G_KEEPERR      16       /* Append errors to $@, don't overwrite it */
    
//#define G_NODEBUG      32       /* Disable debugging at toplevel.  */
    
//#define G_METHOD       64       /* Calling method. */
    
    
//寮濮嬫搷浣滆繑鍥炲間簡
    SPAGAIN;
    printf(
"inner ibm.pl,fun1 return %s\n",POPp); //POPi---int, POPp--pchar
    PUTBACK; //琛ㄧず榪斿洖鍊煎彇瀹屼簡
    
    
//perl鏍堣祫婧愬洖鏀?/span>
    CALLFUN_END;
    
return 0;
}

/* 鎿嶄綔perl鍑芥暟,perl 鍑芥暟榪斿洖涓涓暟緇?br>sub return_array()
{
    @arr = ("changym","chenjx","changjr","xiaobaobao");
    print "inner ibm.pl.return_array:@arr\n";
}
*/
int call_fun_ret_array()
{
    
int ireturn = 0;
    STRLEN n_a; 
//璇″紓鐨勭幇璞★紝闈炶瀹氫箟榪欎釜鍚﹀垯鎵撳嵃鍊肩殑鍝灝辨姤閿?br>                //ibm.c:162: `n_a' undeclared (first use in this function)
                
//鍚屾牱鐨勯棶棰樺氨鏄疨erlInterpreter鐨勫悕瀛楀繀欏誨彨my_perl,涓轟粈涔堝晩錛?br>    //璋冪敤鍑芥暟鍓嶇殑perl鍫嗘爤鎿嶄綔
    CALLFUN_BEGIN;    
    PUTBACK; 
//琛ㄧず鍙傛暟瀹屼簡
    
    
//璋冪敤鍑芥暟
    ireturn = perl_call_pv("return_array",G_ARRAY); //G_SCALAR---榪斿洖鏍囬噺;G_ARRAY--榪斿洖鏁扮粍
    
//寮濮嬫搷浣滆繑鍥炲間簡
    SPAGAIN;
    
if(ireturn>0)
    {
        
while(ireturn>0)
        {
            
//榪斿洖鐨勯『搴忔槸鏁扮粍鐨勫掑彊鍟婏紵
            printf("coming from ibm.pl.return_array:%d-%s\n",ireturn--,POPpx);
        }
    }
    
    PUTBACK; 
//琛ㄧず榪斿洖鍊煎彇瀹屼簡    
    
//perl鏍堣祫婧愬洖鏀?/span>
    CALLFUN_END;
    
return 0;
}


int main(int argc, char* argv[])
{
    
char* my_argv[] = {"","ibm.pl"};
    printf(
"begin c_perl_ibm_test\n");
    printf(
"init perl env\n");
    
    initperlenv(
2,my_argv);
    
    
//鏍囬噺鎿嶄綔嫻嬭瘯
    
//SV_test();
    
    
//鍑芥暟鎿嶄綔嫻嬭瘯
    
//call_fun();
    
    
//鎿嶄綔perl鍑芥暟榪斿洖鏁扮粍嫻嬭瘯
    call_fun_ret_array();    
    
    destroyperlenv();    
    printf(
"leaved c_perl_ibm_test\n");
    
return 0;
}

 



changup 2010-12-30 18:14 鍙戣〃璇勮
]]>
C銆丆++紼嬪簭娼滃叆瑙i噴鎬ц璦http://m.shnenglu.com/changup/archive/2010/12/24/137357.htmlchangupchangupFri, 24 Dec 2010 02:22:00 GMThttp://m.shnenglu.com/changup/archive/2010/12/24/137357.htmlhttp://m.shnenglu.com/changup/comments/137357.htmlhttp://m.shnenglu.com/changup/archive/2010/12/24/137357.html#Feedback5http://m.shnenglu.com/changup/comments/commentRss/137357.htmlhttp://m.shnenglu.com/changup/services/trackbacks/137357.html鍦ㄥ仛鐢典俊瀹藉甫璁よ瘉Radius緋葷粺鐨勬椂鍊欙紝閲囩敤浜嗗紑婧愮殑freeradius緋葷粺錛屽叾涓湁涓猵erl鐨勬ā鍧楅潪甯哥殑鏂逛究錛屽鍙樼殑涓氬姟閫昏緫浜ょ粰瑙i噴鎬х殑perl鍘繪墽琛岋紝榪欐牱鍦ㄥ悗鏈熺殑緇存姢銆佷笂綰垮氨杈圭殑闈炲父綆鍗曪紝涓嶇敤淇敼C紼嬪簭銆傝繎鏈熸墦綆楁憳涓涓婥鍜孭erl鐨勪氦浜掞紝鍒嗙鍑轟竴涓寘鍏敤銆?br>璇鋒暀澶у榪欐牱鐨勬渚嬭繕鏈夋病鏈夋洿綆鍗曠殑緇勫悎錛熸湡寰匔PP鍗氬鐨勯珮鎵嬩滑寮鍧涜緇?..
琛ュ厖涓涓嬶細寮婧愮殑鐜版垚妗嗘灦鏇村ソ錛?/p>

changup 2010-12-24 10:22 鍙戣〃璇勮
]]>
鍗曞疄渚嬫ā寮忕殑涓涓狢++璇誨彇閰嶇疆鏂囦歡鐨勭被CConfig2Maphttp://m.shnenglu.com/changup/archive/2010/12/14/136381.htmlchangupchangupTue, 14 Dec 2010 07:48:00 GMThttp://m.shnenglu.com/changup/archive/2010/12/14/136381.htmlhttp://m.shnenglu.com/changup/comments/136381.htmlhttp://m.shnenglu.com/changup/archive/2010/12/14/136381.html#Feedback4http://m.shnenglu.com/changup/comments/commentRss/136381.htmlhttp://m.shnenglu.com/changup/services/trackbacks/136381.html闃呰鍏ㄦ枃

changup 2010-12-14 15:48 鍙戣〃璇勮
]]>
久久99精品久久只有精品| 亚洲中文字幕久久精品无码喷水| 国产精品午夜久久| 亚洲欧美国产日韩综合久久| 91精品国产高清久久久久久io| 久久亚洲熟女cc98cm| 国内精品久久久久影院老司| 香港aa三级久久三级老师2021国产三级精品三级在 | 伊人热热久久原色播放www| 2022年国产精品久久久久| 久久久精品国产| 久久精品中文字幕第23页| 老司机午夜网站国内精品久久久久久久久| 国产69精品久久久久777| 久久综合九色综合欧美就去吻| 久久久久这里只有精品 | 久久99国产精品尤物| 精品久久久久久中文字幕人妻最新 | 精品久久综合1区2区3区激情| 久久精品国产亚洲沈樵| 无码任你躁久久久久久老妇App| 久久不射电影网| 99久久综合狠狠综合久久止| 国产精品久久影院| 欧美激情精品久久久久久久| 亚洲精品蜜桃久久久久久| 久久精品麻豆日日躁夜夜躁| 久久丝袜精品中文字幕| 精品多毛少妇人妻AV免费久久| 麻豆亚洲AV永久无码精品久久| 免费精品久久天干天干| 日本高清无卡码一区二区久久| 久久激情亚洲精品无码?V| 久久99热这里只有精品国产| 日韩中文久久| 99久久婷婷国产综合亚洲| 狠狠88综合久久久久综合网| 国产欧美久久久精品| 亚洲国产成人精品女人久久久 | 日本道色综合久久影院| 无码人妻久久一区二区三区免费|