[programme c] comment exécuter un programme c

Fermé
LUQMAN - 12 févr. 2006 à 15:27
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 - 4 oct. 2011 à 00:46
bonjour je suis un débutant sur linux et j aimerais savoir comment on peut exécuter un programme c après l avoir taper et compiler?
Merci d avance à tous ceux ki m aideront dans mon apprentissage

6 réponses

mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
12 févr. 2006 à 15:50
Petites précision : à la compilation tu tapes une commandes du genre
gcc -o plop.exe plop.c 

A priori gcc est intelligent et met les droits en execution sur plop.exe, mais sinon il faudrait les rajouter en tapant :
chmod +x plop.exe
Pour exécuter un programme sois tu tape le chemin complet comme le suggère lami20j, par exemple :
/home/toto/plop.exe

... sois tu es déjà dans le bon répertoire et tu peux te contenter de taper :
./plop.exe

Bonne chance
8
RackNiak Messages postés 166 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 12 juin 2008 11
11 juin 2008 à 12:38
.exe sa existe pas en Linux :p mais sinon sa fonctione pareille ;)

et ne pas oublié de mettre des droit d'éxécution si tu as un permition denied:


chmod u+x /chemin/prog

x = execution

u= user
g= group
o = autre
a = tous le monde

+ signifie ajouter les droits
- supprimer les droits



tu peu aussi avoir:

w = droi d'ecriture
r = droit de lecture

c'est une petit information complémentaire toujour utile a connaitre :p
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > RackNiak Messages postés 166 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 12 juin 2008
11 juin 2008 à 13:17
Salut,

.exe sa existe pas en Linux :p mais sinon sa fonctione pareille ;)
Pour l'info complémentaire toujour utile a connaitre :p ;-))

en fait, sous Linux il n'y pas besoin d'une extension.
on l'utilise tout simplement par convention, ce qui permettra de reconnaître le type de fichier
si l'extension manque la commande file permet de savoir le type de fichier et ensuite de trouver une application associée ;-)

Dans la commande que Miss a donnée gcc -o plop.exe plop.c l'appellation .exe et juste une convention.
Elle n'a jamais affirmé que .exe existe sous Linux ;-)

Si un .exe sous Windows veut dire qu'il s'agit d'un fichier exécutable, sous Linux ce n'est qu'une convention et ce sont les droits qui specifient si le fichier est ou pas exécutable.



0
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
11 juin 2008 à 16:30
Effectivement ton exécutable tu lui mets une extension ou non, c'est comme tu veux. Typiquement les commandes unix usuelles (cd, ls ...) n'en ont pas sous les linux classiques. Cependant si tu installes cygwin, tu verras que les commandes de base ont cette extension (ls.exe etc...). Bref tu fais vraiment comme tu veux.

En général dans mes messages je mets cette extension afin que le lecteur comprenne bien qu'on génère l'exécutable.

D'un point de vue strictement informatique une extension ne sert à rien hormis associer un fichier à la bonne application. Si tu veux nommer un image.jpg en image.exe et l'ouvrir avec un logiciel permettant de visualiser une image ça ne pose aucun problème par exemple. C'est juste que c'est un choix pour le moins bizarre ^^
0
RackNiak Messages postés 166 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 12 juin 2008 11 > mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024
11 juin 2008 à 17:32
C'est vrai que d'un coter le .exe pour les lecteur, surtout si il demande, Mais ou est le .exe x) il ne vat pas forcement comprendre que suffi juste de ./fichier pour le lancé
0
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748 > RackNiak Messages postés 166 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 12 juin 2008
11 juin 2008 à 18:01
C'est pourtant explicitement dit dans <2>.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
12 févr. 2006 à 16:03
Encore un posibilité c'est de créer un répertoire bin dans /home/luqman et d'y mettre les fichiers exécutable dans /home/luqman/bin

Normalement dans mandrake 10.1 /home/luqman/bin c'est un chemin qui se trouve dans la variable PATH ( voir la commande echo $PATH qui t'affichera les répertoires separés par :) mais le repertoire /home/luqman/bin faut le créer.

mkdir /home/luqman/bin

gcc -o /home/luqman/bin/plop.exe /home/luqman/source_C/plop.c


Et maintenant tu peux exécuter directement

plop.exe

Petite définition - Variable PATH



Une variable importante de l'environnement est la variable PATH qui se présente sous la forme d'une liste de répertoires séparés par le caractère deux-points (':'). Ces répertoires sont parcourus pour rechercher les commandes. Si vous essayez de lancer la commande bidule, tous les répertoires contenus dans PATH seront examinés (dans l'ordre), à la recherche de l'exécutable bidule (un fichier avec le bit exécutable positionné). Si un tel fichier est trouvé, il sera exécuté.
3
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
12 févr. 2006 à 15:37
Après compilation tu as obtenu un fichier exécutable, disons qu'il s'appelle fichier.

Dans la console tu tape
/chemin/vers/fichier
2
merci
2

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

Posez votre question
jimbaiky Messages postés 4 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 17 mai 2009 2
17 mai 2009 à 21:11
Daccord, mais moi j'ai écrit mon progamme en C sur wordet je c'est pas l'éxécuter.
Pourraiez-vous mais svp, et voia mon programme:

#include <blabla>

/* blablabla*/
#include <blabla>

int main (blabla)
{
puts("Hello world" );

/* blablabla */
system ("pause" );

return 0;
}
1
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
17 mai 2009 à 23:21
Outre le fait que ta question est hors sujet et devrait être postée dans le forum programmation, c'est un point qui est largement détaillée dans plusieurs fiches de la faq notamment ici :
http://www.commentcamarche.net/faq/sujet 14440 la compilation et les modules en c et en c#sous windows

Bonne chance
0
Dans le même sujet (je crois...) comment exécuter un programme compilé en passant par l'interface et non pas la console?
0
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
4 oct. 2011 à 00:46
Si tu es sous windows tu seras obligé de mettre avant le return du main un truc du genre getchar(); car sinon la fenêtre ms dos n'aura même pas le temps d'apparaître.

#include <stdio.h>

int main(){
  printf("coucou\n"),
  getchar();
  return 0;
}


Sinon si tu travailles dans un IDE (code::blocks...) normalement il suffit de lancer ton programme depuis cet IDE.

Sous linux c'est le même principe. Soit tu lances ton programme depuis un terminal (après l'avoir compilé via gcc et éventuellement via make ou cmake), soit tu dispose d'un IDE (kdevelop, anjuta...) qui te permet de le lancer directement dans un onglet dédié de ton IDE.

Bonne chance
0