Tak się zastanawiam czy jest możliwość napisania programu w C który wyświetla własny kod źródłowy bez odwoływania się do innych plików, sieci itp.
Czekam na ciekawe pomysły, przemyślenia (swoje przedstawie później).
Printable View
Tak się zastanawiam czy jest możliwość napisania programu w C który wyświetla własny kod źródłowy bez odwoływania się do innych plików, sieci itp.
Czekam na ciekawe pomysły, przemyślenia (swoje przedstawie później).
musiałby się sam skopiować potem dekompilować klona :) powinno żreć :)
ale nie wiem czy dasz inaczej auto-kopiowanie zrobić inaczej niż używając dodatkowego procesu... wiec defakto masz już 3 programy :D a nie jeden :/
da sie... w 5 linijkach ;]
Kod:#include<stdio.h>
int main(){
puts("własny kod");
return 0;
}
nie wiem jak to będzie w C ale:
system(cat program); ?
Zapomniałem że to śmieszne C jest kompilowane
Bez odczytywania żadnych plików, a pisać można do stdout. No bo tak to możnaby otworzyć i odczytać plik z kodem. Pomyślicie jeszcze trochę, taka zagadka na Święta.
dla przyszlych pokolen...
http://pl.wikipedia.org/wiki/Quine#C
;)
może ja to źle rozumuje ale sprzeczał bym się z definicją- przykład:
ok JS wypiszę:Kod:function quine()
{
// jakikolwiek kod
}
alert(quine);
ale już nie wypiszeKod:function quine()
{
// jakikolwiek kod
}
nie chce mi się kompilować wszystkiego ale z tego co wiedzę to większość (poza np. HTML z użyciem XMLHTTP - tylko czy ja bym to określił samodzielnością i w ogóle określał HTML jako program to też bym się sprzeczał....) wyświetli swój kod ale nie wyświetli instrukcji go wypisującej...Kod:alert(quine)
bo niby jak :) jakoś sobie tego wyobrazić nie mogę... :/
@Teeed Nie słyszałem o tym. Sprytnie pomyślane.
Jednak ja myślałem o odczytaniu kodu maszynowego. A zdobyłbym go w prosty sposób:
Potem wystarczy to przerobić na kod w C. Istnieją przecież dekompilatory np. Boomerang.Kod:#include <stdio.h>
int main()
char* code;
code=(char*)main;//wskaźnik na kod funkcji main