Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1806 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Résolu] Exécution sous unix

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Exécution sous unix

n°1254373
Jeandoe
Posté le 27-11-2005 à 20:40:21  profilanswer
 

Bonjour,
 
Je souhaite faire un petit programme en C sous Unix.
Le but est que mon programme principal puisse lancer un exécutable qui provient d'une fonction qui reçoit un entier en paramètre. Voilà ce que j'ai fait :
fonction.c :
void fonction(int n)
{
    int i,somme=0;
    for(i=0;i<=n;i++)
    {
         somme+=i;
    }
    printf("La somme vaut : %d",somme);
}
 
 
programme principal :
int main()
{
    printf("Sur quel entier voulez-vous effectuer le calcul?\n" );
    scanf("%d",&n);
 
    **
 
    sleep(2000);
}
 
 
Mon problème est que je ne vois pas comment utiliser la commande exécution sur mon éxecutable tout en rentrant l'entier n en paramètre.  
Dois-je faire en commande unix un gcc fonction.c -o fonction puis en (**) faire un execlp? Ou alors faire en (**) un execlp("gcc","gcc","fonction.c","-o","fonction","NULL" )? mais le problème est que je ne vois pas où je peux mettre mon n  :??:  
Merci par avance.

Message cité 1 fois
Message édité par Jeandoe le 28-11-2005 à 00:43:35
mood
Publicité
Posté le 27-11-2005 à 20:40:21  profilanswer
 

n°1254382
Sve@r
Posté le 27-11-2005 à 20:58:21  profilanswer
 

Jeandoe a écrit :

Bonjour,
 
Je souhaite faire un petit programme en C sous Unix.
Le but est que mon programme principal puisse lancer un exécutable qui provient d'une fonction qui reçoit un entier en paramètre. Voilà ce que j'ai fait :
fonction.c :
void fonction(int n)
{
    int i,somme=0;
    for(i=0;i<=n;i++)
    {
         somme+=i;
    }
    printf("La somme vaut : %d",somme);
}
 
 
programme principal :
int main()
{
    printf("Sur quel entier voulez-vous effectuer le calcul?\n" );
    scanf("%d",&n);
 
    **
 
    sleep(2000);
}
 
 
Mon problème est que je ne vois pas comment utiliser la commande exécution sur mon éxecutable tout en rentrant l'entier n en paramètre.  
Dois-je faire en commande unix un gcc fonction.c -o fonction puis en (**) faire un execlp? Ou alors faire en (**) un execlp("gcc","gcc","fonction.c","-o","fonction","NULL" )? mais le problème est que je ne vois pas où je peux mettre mon n  :??:  
Merci par avance.


 
Je dois avouer que tu as exposé ton problème avec une certaine aisance et une très grande clarté . Donc voilà ce que j'ai compris...
Tu voudrais écrire un programme n° 1 qui fait saisir un nombre... et tu voudrais appeler un programme n° 2 en lui passant ce nombre en paramètre
Il te faut d'abord écrire le programme n° 2 recevant un paramètre

int main (int argc, argv[])
{
      int nb;
 
     // Le paramètre reçu se trouve stocké dans "argv[1]" sous forme de chaîne
     // Il te faut le convertir en nombre
     nb=strtol(argv[1], NULL, 10);
 
     // Tu peux maintenant utiliser "nb" comme un nombre et le traiter comme tu veux
    ...
}


 
Maintenant, tu peux écrire le programme n° 1 faisant saisir un nombre et le passant au programme n° 2

int main ()
{
      char saisie[100];         // Zone de saisie
 
      // Saisie d'un nombre dans la zone
      scanf(...);
 
      // Appel du programme n° 2 en lui passant la valeur saisie
      execl("chemin/nom_programme 2", "nom_programme 2", saisie, NULL);
}


 
Tu compiles tes 2 programmes en y rajouant les headers qui vont bien ("man strtol" et "man execl" pour ça)... et tu lances le n° 1


Message édité par Sve@r le 27-11-2005 à 21:01:14

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1254470
Jeandoe
Posté le 27-11-2005 à 23:05:44  profilanswer
 

Tu as tout compris et ce que tu m'as donné fonctionne à merveille.
Merci beaucoup!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Résolu] Exécution sous unix

 

Sujets relatifs
[RESOLU] Transmission de variable entre deux pages PHP ?supprimer une feuille (résolu)
[Résolu] Fonction Execlp avec nombre parametres variable[PHP] Lister le contenu d'un repertoire en faisant des liens[resolu]
[vba excel] [résolu]requête avec adodbRESOLU pb de loop
[Résolu]Je veux le premier élément de $_POST[Résolu]Utiliser une fonction dans un fichier PHP
erreur d'execution des CGI en pêrl[Résolu] POO question hype débutant
Plus de sujets relatifs à : [Résolu] Exécution sous unix


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR