Zechiron Posted April 21, 2008 Share Posted April 21, 2008 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 :) Link to comment Share on other sites More sharing options...
lorinc Posted April 21, 2008 Share Posted April 21, 2008 Et pourquoi ne pas ouvrir le fichier de sources et afficher ligne par ligne ce qu'il contient ? Link to comment Share on other sites More sharing options...
theocrite Posted April 21, 2008 Share Posted April 21, 2008 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. Link to comment Share on other sites More sharing options...
Zechiron Posted April 21, 2008 Author Share Posted April 21, 2008 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 ? Link to comment Share on other sites More sharing options...
16ar Posted April 22, 2008 Share Posted April 22, 2008 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 :) Link to comment Share on other sites More sharing options...
theocrite Posted April 23, 2008 Share Posted April 23, 2008 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 >< Link to comment Share on other sites More sharing options...
funeral Posted May 7, 2008 Share Posted May 7, 2008 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# ). Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.