Re: [amusement] Petit Hello, World!

Page principale

Répondre à ce message
Auteur: Pierre Pronchery
Date:  
À: guilde
Sujet: Re: [amusement] Petit Hello, World!
On Thu, 17 Apr 2003 17:55:52 +0200
Edgar Bonet <guilde@???> wrote:
> Mais 3292 reste une taille respectable, deux fois plus gros que ce
> message, tout ça pour dire bonjour ! Je me suis donc demandé si on
> pouvait encore réduire cette taille. J'ai trouvé des idées, mais je ne
> les donnerai pas tout de suite. Je laisse ceux que ça amuse chercher
> un peu. L'énoncé du problème est :
>
>     Créer un programme Hello, World!, le plus petit possible. Le
>     programme doit afficher Hello, World! à l'écran quand il est
>     appelé sans arguments. Il doit ensuite se terminer en renvoyant
>     au shell un code de retour de zéro. Tout ça sous Linux,
>     évidemment !

linux 2.4.20, gcc 3.2.1, glibc 2.2.5, etc

contenu:
khorben@pinge:~$ cat test.c
int main() { write(0, "Hello, world!\n", 14); return 0; }

compilation:
khorben@pinge:~$ gcc -o test test.c

taille:
khorben@pinge:~$ wc -c test
4455 test

...et apres strip:
khorben@pinge:~$ strip test
khorben@pinge:~$ wc -c test
2784 test

execution:
khorben@pinge:~$ ./test
Hello, world!

code de retour:
khorben@pinge:~$ ./test && echo ni!
Hello, world!
ni!

new record. s'il passe la nuit...

notes:
- il n'y a pas de controle d'erreur
- mon executable final contient:
GCC: (GNU) 2.95.4 20011002 (Debian prerelease)
GCC: (GNU) 3.2.1
plusieurs fois, ce qui me revele que j'ai du merder a ma recompilation
de gcc pour le LFS, et qu'on peut y gagner ici.

(je dis pas que je vais faire la suite)
prochaine etape: l'assembleur.

ensuite: l'editeur hexadecimal.

parachevement: en hexa aussi, mais pour le faire au boot, et non pas en
executable linux (HS).

--
Pierre