Aide sur un executable

Résolu
sergioramos04 -  
dindoun Messages postés 1028 Date d'inscription   Statut Membre Dernière intervention   -
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 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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   Statut Membre Dernière intervention   135
 
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