怎么用C程序写出一个能复制自己的程序?
抄自己的什么?
Fork()不是你想要的?
就是复制源程序!
发件人:crazywill,信息区:编程
标题:C程序输出为自身
发件人:华南网木棉站(Thu Dec 12 09:41:48 2002),信转发。
发送者:星际漫游者,信息区:算法
标题:输出为自身的C程序
发送者:南京大学艺伎回忆录站(2002年1 2月12日星期四00:23:11)
因为有人提到过,之前也注意到了,所以引起了他们的兴趣,在网上收藏了一本。
还真不少。这类程序的技巧在于ASCII 34和10的妙用,即引号和
回车,在定义字符串时:
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);f3。
char * f = " char * f = % c % s % c;% c main()% c ";
main()
= 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);}
[8]
位律师回复
0条评论