2014-06-27 13 views
0

Ceci est une question de niveau débutant en C. Je ne sais pas par où commencer à chercher/chercher. Donc, si j'ai un programme fonctionnant continuellement en C, quelle est la meilleure façon d'accepter l'entrée via la ligne de commande dans le programme?C - exécution du programme en cours d'exécution

EX, MySQL est déjà en cours d'exécution, mais vous pouvez traiter une commande appel

mysql SELECT * FROM * 

Ai-je besoin d'un autre programme pour écrire dans le fichier/stdin entrer le code ici

Précision:

Donc, mysql semble pouvoir prendre des commandes alors qu'il est déjà en cours d'exécution ... est-ce possible en C?

Objectif: J'ai quelques crochets dans ouverts gl es, et je veux courir une boucle de tirage continu en arrière-plan, tout en ayant la possibilité d'appeler des commandes telles que

glhookprogram make "object1" model "triangle" program "default" 
glhookprogram attr "object1" position "1.0, 1.0, 0.0" scale "2.0" rotation "45, 0, 0" 

cette façon, je peux avoir un serveur de noeud exécuter des animations hw-accélérées en javascript sur le rpi.

+0

«si j'ai un programme fonctionnant continuellement en C» et «quelle est la meilleure façon d'accepter l'entrée via la ligne de commande dans le programme» sont des exigences contradictoires. La ligne de commande n'est lue que lorsque vous exécutez le programme pour la première fois. Ce que vous cherchez probablement à faire est de créer votre propre ligne de commande. –

+2

Essayez d'expliquer à un niveau plus concret ce que vous essayez d'atteindre. – cnicutar

+0

On dirait que ce que vous cherchez est un «serveur» en arrière-plan ** ** dans lequel vous aimeriez pouvoir émettre des commandes. Droite? – YePhIcK

Répondre

0

On dirait que c'est ce que vous avez besoin (et je suis désolé - je ne vais pas entrer dans les détails trop car il y a beaucoup de sources sur le Web à ce sujet):

  1. Un « serveur "- ce serait votre processus d'arrière-plan qui reste en mémoire et peut accepter et traiter les commandes (demandes)
  2. Un" client "- un processus (court-circuité?) qui peut accepter les commandes de l'utilisateur (interface graphique, ligne de commande) Réseau? Autre processus?) Et envoyer des demandes à votre "serveur"

Ceci est n ot une tâche triviale pour un débutant. Je suggérerais de googler pour "serveur-client" et pour "communications inter-processus" d'abord et partir de là.

La gamme d'options pour « accepter l'entrée » dans votre serveur inclut (mais ne se limite pas) les éléments suivants:

  1. messages (Windows)
  2. mémoire partagée et une file d'attente de commande (producteur-consommateur)
  3. fichiers partagés (liste juste ici pour être complet, je vous conseille contre celui-ci en particulier pour votre cas)
  4. tubes nommés
  5. Sockets (merci de me rappeler ceux dans les commentaires, peut Je ne crois pas avoir manqué ça!)
+0

c'est ok YePhick, je suis heureux de prendre votre avis.Je comprends ce que vous dites, je ne voulais pas être abattu avec des gens me disant "vous ne pouvez pas le faire, vous êtes stupide, etc" Merci de fournir un point de départ! – user3692055

+1

J'irais avec des douilles. Ils sont les plus universels et vous apprendront la programmation réseau comme un plus. –

+0

C'est bon aussi! Je vous remercie. – user3692055

Questions connexes