Bonjour à tous,
Je souhaiterais réaliser un programme qui lit son exécutable (le fichier binaire à partir du quel il est exécuté), puis se recopie avant d'exécuter la copie. L'idée est que la copie doit être, lorsqu'elle est éxecutée, un programme à part entière indépendant du programme père, afin qu'elle même ait la capacité de se copier... J'insiste sur le fait que la copie doit avoir le même statut que le programme père.
J'utilise le C++ mais peut-être que ce n'est pas le meilleur choix : un langage bas niveau serait peut-être plus approprié ?
Cela fait plusieurs mois que je travaille dessus (sur feuille, puis tests sur ordinateur), mais je me heurte à un problème en particulier :
Je n'ai pas trouvé de solutions efficaces pour exécuter la copie de manière à ce qu'elle soit un programme indépendant : par exemple la commande system("./copie") ne fonctionne évidemment pas puisqu'elle établit une sorte de dépendance entre le programme père et la copie. En gros : le programme père exécute la copie puis continue sa vie sans attendre quoi que ce soit de cette dernière et la copie vit sa vie sans attendre quoi que ce soit du programme père. C'est aujourd'hui le plus gros problème auquel je me heurte sans trouver de solutions. Je me suis penché du côté des processus mais je n'ai pas trouvé de moyen.
Comment exécuter un programme indépendant à partie d'un autre ?
En recherchant des solutions sur des forums je suis très souvent tombé sur des questions qui m'interssaient mais dont les seules réponses étaient : "Pourquoi poser une telle question ?", "Inutile de faire un tel programme !"...
C'est pourquoi j'aimerais avoir une réponse à ma question même si cela peut paraître bête ou je ne sais quoi.
En revache, si vous avez des suggestions (changer de langage, de stratégie...) je suis preneur.
Je travaille sous Linux, en C++11.
Merci par avance de me lire et peut-être proposer des solutions ou suggestions ?
Partager