IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Passer une variable à un programme en C via une page PHP


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    avril 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : avril 2007
    Messages : 179
    Points : 87
    Points
    87
    Par défaut Passer une variable à un programme en C via une page PHP
    Bonjour à tous,

    J'ai un problème PHP / C.

    1) j'ai un programme(exemple) en C que je lance (./test_superbe_programme) et qui tourne en tâche de fond (programme qui attend une "saisie" et qui l'encodage dans fichier) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    {
    	char saisie[300]="";
      FILE* fichier = NULL;
     
    	while(1){
     
        scanf("%s", saisie);
     
        fichier = fopen("test.txt", "a+");
     
        fprintf(fichier, "%s \n", saisie);
        fclose(fichier);
     
      }
        return 0;
     
    }
    Ce superbe programme fonctionne à merveille ... tant que je tape les saisies dans le terminal à partir du quel je l'ai lancé (ceci est mon problème 1).

    2) j'aimerai transmettre une donnée à mon programme en PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $variable="bonjour";
    //commande bien fait pour envoyer ma variable à mon programme C ... qui tourne déjà et qui attend bien sagement
     
    ?>
    Voici mon problème 2 en 1 (et même 3 en 1 mais cela sera pour plus tard)
    Donc en résumé mes problèmes sont :
    1) je dois modifier mon programme C pour qu'il attente un variable depuis une page PHP
    2) je dois mettre une commande en php pour transmettre une variable à mon programme C

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    6 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 6 828
    Points : 31 296
    Points
    31 296
    Billets dans le blog
    4
    Par défaut
    Est-ce que ton programme fait vraiment rien et juste ouvrir un fichier en boucle pour écrire un truc reçu ?
    Parce que si c'est ça, ça sert à rien qu'il tourne en permanence et tu peux directement le lancer avec les paramètres.
    Si non, tu peux évidemment pas utiliser scanf qui récupère les données depuis le terminal, mais tu peux utiliser un socket.
    Et dans tous les cas, ouvrir et fermer le fichier en boucle est bof.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    avril 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : avril 2007
    Messages : 179
    Points : 87
    Points
    87
    Par défaut
    Bonsoir,

    Effectivement mon programme ne fait pas cela. C'est un exemple pour la forme. Mais le le principe est là: lancer un programme en C et lui transmettre des données via une page PHP (par u ou plusieurs utulisateur). Un peu comme MYSQL qui attend des données pour en faire quelque chose.

    Merci pour l'idée du socket.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    avril 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : avril 2007
    Messages : 179
    Points : 87
    Points
    87
    Par défaut
    Je penses avoir trouvé un bel exemple ici

    https://www.developpez.net/forums/d7...-c-client-php/

  5. #5
    Membre éclairé
    Femme Profil pro
    ..
    Inscrit en
    décembre 2019
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 91
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : décembre 2019
    Messages : 354
    Points : 776
    Points
    776
    Par défaut
    Salut,

    Avec les tubes anonymes ça peut être intéressant aussi https://www.php.net/manual/en/function.popen.php

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 653
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 653
    Points : 26 347
    Points
    26 347
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par sebaaas Voir le message
    Donc en résumé mes problèmes sont :
    1) je dois modifier mon programme C pour qu'il attente un variable depuis une page PHP
    2) je dois mettre une commande en php pour transmettre une variable à mon programme C
    Ces problèmes font partie d'un domaine plus vaste qui se nomme "communication entre processus". Ils se résolvent de plusieurs façons qui dépendent principalement de savoir si les processus tournent sur la même machine ou sur des machines différentes
    Si les processus tournent sur la même machine, alors tu peux passer par
    • les fichiers (et leurs dérivés telles les bdd)
    • les pipes (pipes mémoire ou pipes nommés) mais seulement sous Unix/Linux (peut-être que W10 les implémente, j'en sais rien, j'ai un peu décroché concernant les dernières innovations de cet OS)
    • les IPC (là aussi Ubix/Linux)
    • les sockets

    Si les processus tournent sur deux machines distinctes, alors seul le réseau (sockets TCP/IP) peut le faire.
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 871
    Points : 34 592
    Points
    34 592
    Par défaut
    Il faut regarder du coté de CGI, qui te permettra d'affecter certaines URL à un programme externe (donc son programme C). De mémoire, les données son transmises via l'entrée standard, donc ton appli doit lire le contenu de stdin et au niveau serveur web tu dois utiliser un POST ou un GET.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/02/2008, 10h14
  2. Réponses: 21
    Dernier message: 12/10/2007, 19h30
  3. Réponses: 1
    Dernier message: 22/06/2007, 16h40
  4. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo