Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2004, 16:32   #1
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Acquisizione caratteri da tastiera sotto linux

Salve a tutti!!

Ho un problema nell'acquisizione singola dei tasti premuti da tastiera con il C++ (G++ in ambiente linux).

Mi spiego, in Windows esiste una funzione fgetch() che "legge" un
carattere alla volta senza aspettare che premi invio.

In linux non esiste (non sono riuscito a trovare) una funzione simile che faccia al mio caso (infatti cin inserisce nello stream fino a quando premo invio ).

Cosa posso fare ??


Saluti
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 16:36   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
stdin è line-buffered, devi renderla char-buffered (ed opzionalmente non bloccante). v. man termios, in particolare tcsetattr.
Ho postato del codice su questo argomento diverso tempo fa; se non riesci a trovarlo ti do una mano.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 16:43   #3
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Grazie per l'aiuto che mi stai dando .

Ho trovato questo a riguardo

tcsetattr() sets the parameters associated with the termi-
nal (unless support is required from the underlying hard-
ware that is not available) from the termios structure
referred to by termios_p. optional_actions specifies when
the changes take effect:

Ma non ho capito bene cosa devo fare (mi sembra un po' complesso)

Saluti
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 16:53   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Codice:
struct termios new_tty;
struct termios old_tty;
tcgetattr(fileno(stdin), &old_tty);
new_tty = old_tty;
new_tty.c_lflag &= ~ICANON;
// Decommenta questa riga se vuoi togliere l'eco dei caratteri
// new_tty.c_lflag &= ~ECHO;
new_tty.c_cc[VMIN] = 1;
new_tty.c_cc[VTIME] = 0;
tcsetattr(fileno(stdin), TCSAFLUSH, &new_tty);
Ora stdin legge un carattere alla volta, ma è sempre bloccante. Se vuoi vedere quanti caratteri ci sono da leggere, esegui
Codice:
int cnt;
ioctl(fileno(stdin), FIONREAD, &cnt);
Per leggere un carattere, puoi usare una normale read (ricorda che se non ci sono caratteri in ingresso, è bloccante):
Codice:
char ch;
read(fileno(stdin), &ch, 1);
Ricorda ti ripristinare old_tty prima di terminare il programma.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 17:43   #5
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Grazie mille!!

Pero' ho un'altro problema : l'attesa di un carattere.

Es.
Pensa se devi creare un flipper che comandicon la tastiera in Linux se e' bloccante non riesci e gestire altri eventi che devi gestire continuamente (pensa al movimento della pallina) .

Esiste un modo in linux per gestire cio' ??

Come si puo' creare un'interfaccia ad eventi se c'e' una funzione bloccante ??

Saluti !
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 17:54   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
http://forum.hwupgrade.it/showthread...ighlight=getch

Scommetto che eri un utente Borland
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 18:03   #7
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Esatto !!

Eh la borland fa funzioni veramente efficenti e semplici per il programmatore.

Avresti dell'altro materiale a riguardo ??

Grazie mille per l'aiuto che mi hai dato finora.

Mi piacerebbe specializzarmi di piu' con il C++ in linux con compilatori freeware potenti.

Saluti!
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 18:13   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mi sembra che ci sia già abbastanza materiale...hai guardato nei link ?
Codice:
   #include <curses.h>
   
   int main(){
     WINDOW *w;
     int c;
   
     w = initscr();
   
     cbreak();          /* no line buffering */
     nodelay(w, TRUE);  /* make getch call non blocking */
   
     while(1){
       if((c = getch()) != ERR) break;   /* if(kbhit()) break; */
     }
   
     endwin();
     return 0;
   }
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 20:32   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da NetTitus
Pero' ho un'altro problema : l'attesa di un carattere.

Es.
Pensa se devi creare un flipper che comandicon la tastiera in Linux se e' bloccante non riesci e gestire altri eventi che devi gestire continuamente (pensa al movimento della pallina) .

Esiste un modo in linux per gestire cio' ??
Secondo te la ioctl che te la ho postata a fare?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
AWS rinnova lo stack dell’IA: Trainium3,...
AWS entra nell'era degli agenti: il keyn...
Roscosmos: inventario a bordo della ISS ...
Arduino viene acquisita da Qualcomm e ca...
Un razzo spaziale Arianespace Vega C ha ...
Terra Next dà il via a Scale-Up P...
Il veicolo riutilizzabile ESA Space Ride...
Un Mousepad per mirare meglio: uno youtu...
Tokyo Electron sotto accusa: Taiwan cont...
L'ESA sta cercando alternative all'utili...
iliad TOP 250 PLUS e TOP 300 PLUS: valan...
FRITZ! a Sicurezza 2025: connessioni WiF...
I 18enni di oggi non fanno più la...
Super offerte Apple: iPhone 16e a 529€ e...
Torres EVT arriva in Italia con listino ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v