Un peu d'histoire :
J'essaie d'interagir avec des données que j'ai enregistrées dans des fichiers Perl à l'aide d'un programme que j'ai écrit en C en utilisant l'API Win32. Le programme C est sous Windows et les fichiers Perl sont accessibles via un lecteur réseau mappé dans un environnement Unix. J'utilise perlembed et je parviens à extraire les données que je souhaite des fichiers Perl en utilisant l'interpréteur Perl intégré et les sous-programmes Perl appelés à partir du langage C.
Le problème :
Je dois exécuter des scripts Perl scripts qui sont déjà en place du côté Unix. La fonction de ces scripts est de vérifier la syntaxe des fichiers Perl et de les enregistrer dans un système de contrôle de révision que j'utilise. Les scripts appellent des commandes spécifiques à Unix comme pwd
qui font que le programme C s'interrompt lorsque j'utilise system(perl perl_file)
. Il y a pas mal de code Perl hérité, donc je ne pense pas pouvoir modifier les scripts de vérification Perl scripts qui doivent être appelés.
Ma question :
Comment puis-je exécuter un script Perl script dans un environnement Unix à partir du programme C du côté Windows ? Je suis tombé sur este question suggérant l'utilisation de cygwin mais il semble que ce ne soit qu'un autre environnement entre Unix et Windows. J'ai pensé qu'il pourrait y avoir un moyen de permettre au programme C d'utiliser un Shell C dans le lecteur réseau mappé pour exécuter le Shell Perl, mais je n'ai trouvé aucun exemple de cela nulle part. Ou peut-être pourrais-je demander à l'interpréteur Perl de l'environnement Unix d'exécuter le programme (en utilisant la ligne shebang) ? J'espère que ce n'est pas une question stupide. Je viens de faire tellement de travail pour pouvoir manipuler les données Unix Perl du côté Windows et c'est frustrant de ne pas pouvoir terminer ma tâche parce que je ne peux pas exécuter un Shell Perl.
Merci de votre attention !