Utile: exécuter un programme en C depuis un serveur

Cet article décrit comment exécuter un programme en C depuis un serveur web ou de tout autre programme écrit en Python. J’avoue ne pas encore trouvé une utilité à cette fonction, mais j’avais le besoin de le faire ! Un appel des Dieux peut-être..chapeau-melon fp

Selon mes modestes recherches, il existe 2 méthodes pour importer une librairie (écrite en C) depuis un programme écrit Python qui sont discutées ici.

La première se dénomme  SWIG alors que je m’intéresse plutôt au module Ctypes qui me paraît mieux documenté et donc plus simple. Voici un tutoriel très simple pour réaliser cette mission incroyable…

Créer un fichier en C :

Sudo nano girafe.c

Qui contient le code suivant :


Compiler le code:

gcc -c -Wall -Werror -fpic girafe.c

pui Build :

gcc -shared -o girafe.so girafe.o

Créer un fichier en python pour appeler la fonction:


Exécuter alors le programme:

Sudo python girafe.py

badaboum !!

Remarque: les libraires .o ( shared object) semblent se trouver dans le répertoire /usr/local/bin mais il n’est pas nécessaire de déplacer notre librairie toute fraîchement créée dans ce répertoire. J’imagine donc que Linux s’y retrouve et cherche d’abord les libraires dans le répertoire courant ( just a big guess !).

Amusez-vous !

 

Deuxième projet avec utilisation de librairie wiringPi

Voici le fichier en C qui allume une LED pendant 3s sur mon robot.

ratc

Pour compiler :

rat compilation

ensuite, créer un fichier .py pour appeler la fonction main.

ratpy

Et enfin, exécuter avec sudo python rat.py, et la LED s’allumera pendant 3s et affichera aussi le message suivant sur le terminal :

rat-camarche

 

Pour info, cette page ci-dessous décrit comment appeler différents types de fonction avec la coquille Ctype.

http://chimera.labs.oreilly.com/books/1230000000393/ch15.html

 

Publicités