锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品美女久久久久av爽,久久亚洲精品成人av无码网站,国产亚洲色婷婷久久99精品http://www.shnenglu.com/changup/category/15635.htmlzh-cnThu, 30 Dec 2010 17:02:55 GMTThu, 30 Dec 2010 17:02:55 GMT60c涓皟鐢╬erl鐨勬祴璇曞皬紼嬪簭錛屽悇縐嶅満鏅戶緇祴璇曚腑http://www.shnenglu.com/changup/archive/2010/12/30/137753.htmlchangupchangupThu, 30 Dec 2010 10:14:00 GMThttp://www.shnenglu.com/changup/archive/2010/12/30/137753.htmlhttp://www.shnenglu.com/changup/comments/137753.htmlhttp://www.shnenglu.com/changup/archive/2010/12/30/137753.html#Feedback0http://www.shnenglu.com/changup/comments/commentRss/137753.htmlhttp://www.shnenglu.com/changup/services/trackbacks/137753.htmltar鍖呬綅緗細http://www.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://www.shnenglu.com/changup/archive/2010/12/24/137357.htmlchangupchangupFri, 24 Dec 2010 02:22:00 GMThttp://www.shnenglu.com/changup/archive/2010/12/24/137357.htmlhttp://www.shnenglu.com/changup/comments/137357.htmlhttp://www.shnenglu.com/changup/archive/2010/12/24/137357.html#Feedback5http://www.shnenglu.com/changup/comments/commentRss/137357.htmlhttp://www.shnenglu.com/changup/services/trackbacks/137357.html鍦ㄥ仛鐢典俊瀹藉甫璁よ瘉Radius緋葷粺鐨勬椂鍊欙紝閲囩敤浜嗗紑婧愮殑freeradius緋葷粺錛屽叾涓湁涓猵erl鐨勬ā鍧楅潪甯哥殑鏂逛究錛屽鍙樼殑涓氬姟閫昏緫浜ょ粰瑙i噴鎬х殑perl鍘繪墽琛岋紝榪欐牱鍦ㄥ悗鏈熺殑緇存姢銆佷笂綰垮氨杈圭殑闈炲父綆鍗曪紝涓嶇敤淇敼C紼嬪簭銆傝繎鏈熸墦綆楁憳涓涓婥鍜孭erl鐨勪氦浜掞紝鍒嗙鍑轟竴涓寘鍏敤銆?br>璇鋒暀澶у榪欐牱鐨勬渚嬭繕鏈夋病鏈夋洿綆鍗曠殑緇勫悎錛熸湡寰匔PP鍗氬鐨勯珮鎵嬩滑寮鍧涜緇?..
琛ュ厖涓涓嬶細寮婧愮殑鐜版垚妗嗘灦鏇村ソ錛?/p>

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

changup 2010-12-14 15:48 鍙戣〃璇勮
]]>
亚洲欧美成人久久综合中文网| 久久精品国产黑森林| 日韩精品久久久久久久电影蜜臀| 亚洲成色www久久网站夜月| 国产精品久久久久国产A级| 国内精品久久久久国产盗摄| 亚洲伊人久久成综合人影院| 国产精品久久久久久五月尺| 99久久国语露脸精品国产| 久久国产热这里只有精品| 无码人妻精品一区二区三区久久 | 思思久久99热只有频精品66| 久久精品99久久香蕉国产色戒| 久久996热精品xxxx| 久久精品国产亚洲av麻豆色欲| 国产亚洲欧美成人久久片| 久久精品国产清自在天天线| 精品久久久久久综合日本| 久久精品国产男包| 久久久久久av无码免费看大片| 亚洲中文字幕无码久久2017| 久久久WWW免费人成精品| 国内精品久久久久| 久久国产精品77777| 日韩va亚洲va欧美va久久| 狠狠久久综合伊人不卡| 久久亚洲精品国产精品| 无码人妻久久一区二区三区 | 综合久久国产九一剧情麻豆| 久久久久97国产精华液好用吗| 久久综合狠狠综合久久激情 | 99久久精品国产一区二区| 午夜精品久久久久久中宇| 久久精品国产免费观看| 亚洲国产香蕉人人爽成AV片久久| 久久久久人妻精品一区三寸蜜桃| 国产成人精品综合久久久| 青青青国产成人久久111网站| 久久国产精品久久精品国产| 久久av无码专区亚洲av桃花岛| 久久久久亚洲av成人网人人软件|