锘??xml version="1.0" encoding="utf-8" standalone="yes"?>香蕉久久夜色精品国产小说,久久精品国产一区二区电影,性做久久久久久久久浪潮http://www.shnenglu.com/changup/category/15635.htmlzh-cnThu, 30 Dec 2010 17:02:55 GMTThu, 30 Dec 2010 17:02:55 GMT60c涓皟鐢╬erl鐨勬祴璇曞皬紼嬪簭錛屽悇縐嶅満鏅戶(hù)緇祴璇曚腑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鍖呬綅緗細(xì)http://www.shnenglu.com/Files/changup/c_perl.tar

鏈嫻嬭瘯姣旇緝瀹屾暣鐨勪竴涓猚鏂囦歡錛岃創(chuàng)鍑烘潵錛岃楂樹(shù)漢鎸囩偣瀹屽杽錛屼簤鍙栧ぇ瀹跺疄闄呬腑鑳界敤濂斤紝姣曠珶鎰熻鍦ㄧ▼搴忎腑宓屽叆瑙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;
    
    
//灝嗗彉閲忚緗負(fù)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; 
//琛ㄧず鍙傛暟瀹屼簡(jiǎn)
    
    
//璋冪敤鍑芥暟
    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. */
    
    
//寮濮嬫搷浣滆繑鍥炲間簡(jiǎn)
    SPAGAIN;
    printf(
"inner ibm.pl,fun1 return %s\n",POPp); //POPi---int, POPp--pchar
    PUTBACK; //琛ㄧず榪斿洖鍊煎彇瀹屼簡(jiǎn)
    
    
//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; 
//琛ㄧず鍙傛暟瀹屼簡(jiǎn)
    
    
//璋冪敤鍑芥暟
    ireturn = perl_call_pv("return_array",G_ARRAY); //G_SCALAR---榪斿洖鏍囬噺;G_ARRAY--榪斿洖鏁扮粍
    
//寮濮嬫搷浣滆繑鍥炲間簡(jiǎn)
    SPAGAIN;
    
if(ireturn>0)
    {
        
while(ireturn>0)
        {
            
//榪斿洖鐨勯『搴忔槸鏁扮粍鐨勫掑彊鍟婏紵
            printf("coming from ibm.pl.return_array:%d-%s\n",ireturn--,POPpx);
        }
    }
    
    PUTBACK; 
//琛ㄧず榪斿洖鍊煎彇瀹屼簡(jiǎn)    
    
//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鍦ㄥ仛鐢?shù)淇″甯﹁璇丷adius緋葷粺鐨勬椂鍊欙紝閲囩敤浜?jiǎn)寮婧愮殑freeradius緋葷粺錛屽叾涓湁涓猵erl鐨勬ā鍧楅潪甯哥殑鏂逛究錛屽鍙樼殑涓氬姟閫昏緫浜ょ粰瑙i噴鎬х殑perl鍘繪墽琛岋紝榪欐牱鍦ㄥ悗鏈熺殑緇存姢銆佷笂綰垮氨杈圭殑闈炲父綆鍗曪紝涓嶇敤淇敼C紼嬪簭銆傝繎鏈熸墦綆楁憳?shù)竴涓婥鍜孭erl鐨勪氦浜掞紝鍒嗙鍑轟竴涓寘鍏敤銆?br>璇鋒暀澶у榪欐牱鐨勬渚嬭繕鏈夋病鏈夋洿綆鍗曠殑緇勫悎錛熸湡寰匔PP鍗氬鐨勯珮鎵嬩滑寮鍧涜緇?..
琛ュ厖涓涓嬶細(xì)寮婧愮殑鐜版垚妗嗘灦鏇村ソ錛?/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 鍙戣〃璇勮
]]>
久久久久久无码国产精品中文字幕| 久久ww精品w免费人成| 久久露脸国产精品| 色综合久久久久无码专区| 亚洲国产精品久久66| 亚洲欧洲中文日韩久久AV乱码| 天天躁日日躁狠狠久久| 91精品无码久久久久久五月天 | 狠狠精品久久久无码中文字幕| 欧美大香线蕉线伊人久久| 久久丫精品国产亚洲av| 精品久久久久久国产免费了| 国内精品久久久人妻中文字幕| 国产精品gz久久久| 久久天天躁狠狠躁夜夜96流白浆 | 性做久久久久久免费观看| …久久精品99久久香蕉国产| 国产精品久久久久久久人人看 | 精品久久人人爽天天玩人人妻| 免费观看成人久久网免费观看| 欧美伊人久久大香线蕉综合| 久久久久国产一区二区| 精品久久一区二区| 国产精品99久久精品| 久久精品国产第一区二区三区| 四虎亚洲国产成人久久精品| 日本免费久久久久久久网站| 久久99国产综合精品| 久久棈精品久久久久久噜噜| 日本WV一本一道久久香蕉| 午夜福利91久久福利| 久久亚洲中文字幕精品一区四| 国产精品99久久久久久宅男| 天天综合久久久网| 国产亚洲精午夜久久久久久| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久亚洲私人国产精品vA| 亚洲va久久久噜噜噜久久| 久久免费的精品国产V∧ | 久久久精品国产Sm最大网站| 久久国产免费直播|