Aide sur un executable

Résolu/Fermé
sergioramos04 - 18 déc. 2008 à 12:21
dindoun Messages postés 1028 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 17 février 2017 - 18 déc. 2008 à 14:51
Bonjour,
comment obtenir un executable d'un script shell (comme .exe en windows)
en tappant ./nom_programme ,on obtient un executable ,alors j'ai pensé à ecrire une fonction c qui appelle le script shell en donnant un executable en c
aidez moi et merci bcp

2 réponses

mamiemando Messages postés 33636 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2025 7 842
18 déc. 2008 à 14:40
en tapant ./nom_programme ,on obtient un executable

Non. Cette commande permet de lancer un exécutable appelé nom_programme, mais en soit il faut que ce script ait les droits en exécution pour devenir un exécutable a proprement parlé, par exemple en tapant :
chmod a+x mon_programme


alors j'ai pensé à ecrire une fonction c qui appelle le script shell en donnant un executable en c 


Alors attention contrairement à un script shell, un programme écrit en langage C doit être compilé. Cela signifie que tu as un fichier source (par exemple plop.c) que tu compiles avec gcc pour produire un executable (par exemple plop). Supposons que mon fichier plop.c contienne :
#include <stdio.h>

int main(){
  printf("pouet !\n");
  return 0;
}

Je le compile pour produire un exécutable plop :
gcc -W -Wall -o plop plop.c 

Du coup je peux lancer le programme plop :
./plop

Tu peux via un programme en C appeler un exécutable à l'aide de la commande execve ou execvp (fais une petite recherche google pour voir des exemples), comme par exemple un script shell.

Bonne chance
1
dindoun Messages postés 1028 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 17 février 2017 135
18 déc. 2008 à 14:51
salut
petit rajout

créons un fichier essai :
touch essai
ls -al essai
nous donne :
-rw-r--r-- 1  0 2008-12-18 14:44 essai

après
chmod a+x essai
on a
ls -al essai
-rwxr-xr-x 1 login groupe 0 2008-12-18 14:44 essai

tu vois que x a été rajouté trois fois ( grace au a ) ce qui signifie qu'il devient exécutable
en tapant ./essai
deuxime précision

sous linux les fichiers exécutables shell ressemblent plus aux fichier .bat de windows mais en plus puissant ( d'où l'intéret de linux ) ce qui permet de fonctionner avec des fichiers lisibles humainenemnt car les fichiers shell sont des fichiers textes exécutés par le programme sh ( ou csh ... )
0