[SHELL] shell qui appelle une fonction C ?

Résolu/Fermé
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 - 12 juil. 2007 à 14:36
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 - 23 juil. 2007 à 17:23
Salut !

Je cherche à faire un script shell qui appelle une fonction C...En gros, j'ai mon fichier C avec une fonction int calcul() par exemple... et mon script appelle cette fonction calcul.

Je cherche..mais trouve pas... Si vous avez des elements de reponse...je suis preneur!

Merci.
A voir également:

10 réponses

dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 5 630
12 juil. 2007 à 14:49
LO
Il faut écrire un programme avec cette fonction, le compiler et appeller l'exécutable depuis le shell.
0
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
12 juil. 2007 à 14:54
Oui, je vois...

Seul gros problème: je ne suis pas en mesure de générer un exécutable de ce fichier C uniquement.
J'explique: c'est un ensemble de fichiers C qui sont compilés et qui génèrent un seul executable.

Parmi tout ça, je me suis dit que je pouvais ptetre prendre en compte le fichier C en question (son nom) et pouvoir appelé la fonction que je souhaite dessus...

A moins que vous trouviez une autre solution?

Merci pour votre aide...
0
Je ne crois pas que cela soit directement possible, par contre tu peux faire tout ce que tu fais en shell en C, grâce aux fonctions de C ou même en utilisant la fonction "system".
0
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 5 630
12 juil. 2007 à 15:59
awk ou perl peuvent bien remplacer du C
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
12 juil. 2007 à 16:42
Si awk peut appeler d'autres fonctions d'autres fichiers C... je suis preneur... c'est sous Unix.
Bref...

Merci de votre aide.
0
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
13 juil. 2007 à 09:43
J'ai beau faire du "google...", je crois que ce n'est vraiment pas possible de faire exactement ce que je veux.

Bon, ben...tanpis.
Merci à tous ceux qui ont repondu.
0
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 5 630
13 juil. 2007 à 10:06
Dis nous ce que tu veux faire ...
0
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
13 juil. 2007 à 10:38
Mon fichier C contient des fonctions qui émettent des journaux (sortes d'evenements).
Mon script verifie si des services sont disponibles, et je met à jour des champs en base de donnée.
Lors de ces changement en base, je veux appeler une fonction journal de mon fichier C.

Comme je l'ai dit plus haut, je ne peux pas me permettre de faire un exécutable de ce fichier seulement. Il faudrait si possible que j'arrive à appeler une fonction C directement à partir de mon script.

Je crois qu'il n'y a pas de solution pour ça.

Je vais chercher un autre moyen de procéder je pense. Sauf si toutefois, vous avez des solutions...

Merci encore.
0
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 5 630
13 juil. 2007 à 12:17
Ecrire un prog. C:
extern mafonction();
main()
{
        mafonction();
}



cc -c prog.c
cc -o prog prog.o fichier_compilé_contenant_ma_fonction.o
0
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
23 juil. 2007 à 17:23
Finalement,

J'ai procédé autrement. Je en crois pas qu'il soient possible de faire exactement ce que je demandais...
Au final, j'ai fait en script des accès en base que ma fonction C aurait du faire... En gros, fais en Shell ce qui était fait en C... Je ne pouvais pas faire un executable du fichier que je souhaitais uniquement... Mais effectivement, cette manipulation marche.
Merci pour vos reponses quand meme.

Magicwill.
0