怎么用C程序?qū)懗鲆粋€(gè)能復(fù)制自己的程序?

字號(hào):

復(fù)制自己的什么?。?BR>    fork()出來(lái)的不是你所要的?
    就是復(fù)制源程序!
    發(fā)信人: crazywill (開(kāi)始努力), 信區(qū): Programming
    標(biāo) 題: 輸出為本身的c程序
    發(fā)信站: 華南網(wǎng)木棉站 (Thu Dec 12 09:41:48 2002), 轉(zhuǎn)信
    發(fā)信人: StArGazEr (Wanderer-In-Heavens), 信區(qū): Algorithm
    標(biāo) 題: 輸出為本身的c程序
    發(fā)信站: 南京大學(xué)小百合站 (Thu Dec 12 00:23:11 2002)
    因?yàn)橛腥颂崞?,以前也曾?jīng)注意到過(guò),于是勾起了興趣,網(wǎng)上收集了一把。
    還真不少,這類(lèi)程序的技巧在于字符串定義時(shí)對(duì)ASCII為34和10即引號(hào)和
    回車(chē)符的妙用:
    1。
    char*f="main(){putchar('c');putchar('h');putchar('a');putchar('r');
    putchar('*');&
    putchar('f');putchar('=');putchar(34);printf(f);putchar(34);
    putchar(';');&
    putchar(10);printf(f);putchar(10);}";
    main(){putchar('c');putchar('h');putchar('a');putchar('r');
    putchar('*');putchar('f');&
    putchar('=');putchar(34);printf(f);putchar(34);putchar(';');
    putchar(10);&
    printf(f);putchar(10);}
    2。
    char*f="char*f=;main(){f[7]=0;printf(f);putchar(34);f[7]=';';
    printf(f);&
    putchar(34);f[8]=0;printf(&f[7]);f[8]='m';putchar(10);
    printf(&f[8]);putchar(10);}";
    main(){f[7]=0;printf(f);putchar(34);f[7]=';';printf(f);putchar(34);&
    f[8]=0;printf(&f[7]);f[8]='m';putchar(10);printf(&f[8]);
    putchar(10);}
    3。
    char*f="char*f=%c%s%c;%cmain()%c";
    main()