Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Programma in c da console

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] Programma in c da console

Messaggioda Foto UtenteDaniele78 » 19 dic 2010, 11:30

Ho letto in giro che quando vengono creati programmi Linux si inizia a creare l' applicazione funzionante da console e poi la gui.
Nel software che realizzo dovrò prevedere dunque la possibilità di inviare comandi da console.
Nel caso di un videoplayer dovrò quindi prevedere la possibilità di inviare il comando "Pausa" da console.
Il dubbio è questo. So che i parametri al programma possono essere passati solo quando questo viene lanciato.

Ci sono dunque delle contraddizioni.
Deve esserci qualcosa di inesatto in ciò che ho letto.
Non posso postare la fonte in quanto ho letto ciò parecchio tempo fa e non ricordo dove.
Grazie!
Avatar utente
Foto UtenteDaniele78
290 2 9
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

0
voti

[2] Re: Programma in c da console

Messaggioda Foto UtenteRob78 » 19 dic 2010, 11:48

non programmo in linux, tuttavia è vero che i parametri si passano solo all'avvio; ma il comando "pausa" non è un parametro ma un comando, dunque deve essere lanciato successivamente all'avvio del programma (con o senza parametri).

In pratica, lanci il tuo programma, il quale avrà una interfaccia utente (grafica o testuale) dalla quale lancerai i tuoi comandi (come "pausa", "play", ecc...).
Avatar utente
Foto UtenteRob78
0 3
 
Messaggi: 18
Iscritto il: 15 dic 2010, 15:21

0
voti

[3] Re: Programma in c da console

Messaggioda Foto UtenteDaniele78 » 19 dic 2010, 12:54

Attualmente eseguo i comandi da tastiera ad esempio tasto s=play tasto p=pausa.
Utilizzo lo switch per chiamare la funzione specifica.
A me non interessa tanto la presenza di una gui ma il fatto che possano essere eseguiti comandi quali pausa, play, etc. mediante uno script esterno.
Quando ho letto l' articolo non avevo in mente tutto ciò e quindi non l' ho neppure preso in considerazione.
E' possibile anche che volesse dire tutt' altro.
Avatar utente
Foto UtenteDaniele78
290 2 9
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

0
voti

[4] Re: Programma in c da console

Messaggioda Foto UtenteTardoFreak » 19 dic 2010, 14:06

E cosa dovrebbe fare questo script esterno? Quale dovrebbe essere la sua funzione?
E' un file batch? Una sequenza di tasti o di comandi da inviare al programma ... o cosa?
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[5] Re: Programma in c da console

Messaggioda Foto UtenteDaniele78 » 19 dic 2010, 14:37

L' idea è quella di realizzare un programma eseguibile da console e poter dire i comandi oltre che da trastiera possono essere inviati anche così...
Avatar utente
Foto UtenteDaniele78
290 2 9
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

0
voti

[6] Re: Programma in c da console

Messaggioda Foto UtenteDaniele78 » 19 dic 2010, 14:46

non intendo che debbano essere inviati necessariamente da console. Mi interessa fornire solo un' alternativa.
Avere un eseguibile per ogni comando è la cosa migliore in quanto utilizzando una gui si può associare ai vari pulsanti un eseguibile. Inoltre ci sarebbe la possibilità di interfacciarsi con un' altra applicazione.
Avatar utente
Foto UtenteDaniele78
290 2 9
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

0
voti

[7] Re: Programma in c da console

Messaggioda Foto UtenteDaniele78 » 19 dic 2010, 14:50

Naturalmente non so se la cosa è conveniente. Se dico lanciando questo script sh il video va in pausa, questi dovrà andare in pausa istantaneamente.
Avatar utente
Foto UtenteDaniele78
290 2 9
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

0
voti

[8] Re: Programma in c da console

Messaggioda Foto UtenteelQuero » 19 dic 2010, 14:52

in teoria, dovresti progettare il programma in modo che si lanci e abbia 2 finestre, una di console dove il programma vero e proprio è contenuto. Questo programma crea e lancia un oggetto finestra, o comqune una gui che metti sempre nello stesso progetto, che contiene un oggetto capace di visualizzare il video secondo l'algoritmo contenuto nel programma principale... ovviamente, la console, rimanendo aperta, puo accettare intanto degli input, come la parola "play" per avviare, ecc ecc...

Spero che mi abbiate capito.. ;)
Avatar utente
Foto UtenteelQuero
0 2
 
Messaggi: 13
Iscritto il: 19 dic 2010, 10:52

0
voti

[9] Re: Programma in c da console

Messaggioda Foto UtenteBerello » 19 dic 2010, 15:02

A che livello sei con la programmazione in C?
Te la cavi bene?

E con i sistemi UNIX come te la cavi? Hai mai usato il comando man? Lo usi regolarmente e sai interpretare le sue pagine?

Una possibilità per fare quello di cui parli è l'utilizzo delle code di messaggi. Si tratta di chiamate di sistema che servono proprio a scambiare messaggi tra diversi processi.
Te lo devi studiare un po', perché non è il massimo della semplicità (una volta che hai capito come funziona, non è difficile, ma prima devi capire il meccanismo e i suoi limiti).
In particolare le chiamate di sistema che possono interessarti sono:
msgget, msgctl, msgsnd, msgrcv.

Con questi puoi creare un server (l'applicazione principale, che contiene il nocciolo del tuo programma e riceve i messaggi dai client) e dei client (che inviano i comandi).
Quello che farai quindi sarà mettere il server in lettura sulla coda, il client invece sarà un semplice programma che riceve un parametro, apre la coda di messaggi, invia sulla coda il parametro che gli è stato dato e finisce qui il suo lavoro.



Edit:
Ci tengo a precisare che la questione di cui hai parlato:
Daniele78 ha scritto:Ho letto in giro che quando vengono creati programmi Linux si inizia a creare l' applicazione funzionante da console e poi la gui.

è vera. Ma il motivo per cui questa vale è che gli ambienti UNIX-like funzionano prevalentemente da terminale, perché hanno un terminale eccezionale.
Sviluppare il software per il terminale ti permetterà di usarlo anche qualora il server grafico (X con GDM, KDM o altro) dovesse non essere disponibile. Aggiungere separatamente l'interfaccia grafica renderà il programma utilizzabile sia da terminale sia da interfaccia grafica.
Se però il programma che stai scrivendo ha un uso solamente grafico (hai parlato di video), allora probabilmente diventa inutile complicarsi la vita facendo questa separazione, se poi tanto il programma non potrebbe essere usato da terminale.

Aggiungo un'ultima nota: il fatto che un programma sia scritto per il terminale non implica che non possa avere una grafica o che non possa mostrare immagini e video; grazie al framebuffer è possibile mostrare immagini con risoluzione normale (e non quella limitata che c'è spesso nel terminale).

Però non credo che tu stia sviluppando il software per funzionare in queste modalità, perciò probabilmente la cosa migliore per te è quello di fare un unico programma, direttamente con l'interfaccia grafica.

Ma ciò non toglie che tu possa implementare comunque la parte con le code di messaggi, che potrebbe essere utile per interagire con il tuo software dall'esterno (tramite script o altri programmi). Anzi, se hai voglia di implementarla, te lo consiglio, perché è una funzionalità molto utile.
Avatar utente
Foto UtenteBerello
110 1 3 7
Expert EY
Expert EY
 
Messaggi: 449
Iscritto il: 3 mar 2009, 23:53
Località: Roma

0
voti

[10] Re: Programma in c da console

Messaggioda Foto UtenteDaniele78 » 19 dic 2010, 16:37

Berello ha scritto:A che livello sei con la programmazione in C?
Te la cavi bene?

E con i sistemi UNIX come te la cavi? Hai mai usato il comando man? Lo usi regolarmente e sai interpretare le sue pagine?

E' da parecchio che uso C (non C++) quindi in qualche modo me la cavo. Conosco in qualche modo le librerie SDL e OpenCV. Come sistema operativo uso maggiormente Ubuntu.


Il programma una volta lanciato apre una finestra mostrante il video.
Avrò finestra video + finestra terminale(manca il prompt perché il programma è in esecuzione).
Utilizzando le code di messaggi si possono inviare quindi nuove informazioni al programma mentre è in esecuzione?
Avatar utente
Foto UtenteDaniele78
290 2 9
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 56 ospiti