Aller au contenu

Code C# qui affiche son code source

Featured Replies

Posté(e)

Bonjour à tous,

J'ai, dans le cadre de mon boulot à réaliser un petit "bizutage".

Je dois réaliser un programme C# qui lors de son exécution affiche son code source.

J'ai comme indice un code C/C++. Cependant, n'ayant jamais fait de C, j'aurais besoin de votre aide pour comprendre ce petit bout de code.

char *s="main() { char *s=%c%s%c; printf(s,34,s,34); }";

printf(s,34,s,34);

return 0;

Je vous remercie d'avance :)

Posté(e)

Le petit bout de code, c'est déjà le programme qui se régénère tout seul.

C'est assez connu. On l'appelait phoenix à l'école. Allez savoir pourquoi.

EDIT : effectivement, comme dit lorinc, on peut faire un open sur le fichier source, mais ce n'est pas ce qui est recherché. Ça respecte peut être l'énoncé (à voir), mais pas l'esprit du sujet.

Posté(e)
  • Auteur

La lecture du fichier est interdite bien évidemment ...

Et même si elle ne l'était pas, je le ferais pas .... Mais personne peut me donner un indice sur ce que ce code veut dire ?

Posté(e)

Je pense que ce qui correspond le plus a ce que tu cherche, ca serait du coté du namespace Reflections en .net

Ca permet d'obtenir des informations sur le langage/les fonctions utilisées. D'apres moi, c la qu'il faut regarder :)

Posté(e)

Ce code a pour fonction de produire un code identique à lui même. D'où l'intérêt du main dans la chaine de caractères.

16ar, je ne suis pas sûr que tu ais compris le problème ><

  • 2 semaines après...
Posté(e)

Je pense que je réponds un peu tard (le bizutage dure rarement plus de deux semaines ;-)).

A un moment donné je m'amusais bien avec ça, ça n'a rien de très compliqué, c'est même assez simple ; on appelle cela "Quine", Wikipedia y consacre d'ailleurs un article :

http://fr.wikipedia.org/wiki/Quine_(informatique)#C.23

(d'ailleurs, en lien, le code pour C# :transpi:).

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.