源代码:
测试:
[guzhou@freebsd ~]$ gcc self.c -o self
[guzhou@freebsd ~]$ ./self > self2.c
[guzhou@freebsd ~]$ gcc self2.c -o self2
[guzhou@freebsd ~]$ ./self2 > self3.c
[guzhou@freebsd ~]$ gcc self3.c -o self3
[guzhou@freebsd ~]$ ./self3
#include <stdio.h>
int main()
{
char *p = "#include <stdio.h>%cint main()%c{%c char *p = %c%s%c;%c printf(p, 10, 10, 10, 34, p, 34, 10, 10, 10, 10);%c return 0;%c}%c";
printf(p, 10, 10, 10, 34, p, 34, 10, 10, 10, 10);
return 0;
}
[guzhou@freebsd ~]$