PDA

Visualizza la versione completa : [C/C++] Esiste l'header linux.h?


Zahami
31-07-2009, 15:42
Come da titolo, mi chiedevo se su Linux esistesse l'header linux.h, un pò come in Windows abbiamo l'header windows.h.

In particolare mi serve per individuare finestre, memorizzare la dimensione dello schermo, cambiare la posizione del puntatore ecc...

O magari c'è già un altro file che permette queste funzioni?

Stoicenko
31-07-2009, 15:47
non vorrei dire stupidaggini.. ma linux ste cose non le ha.. linux di suo l'interfaccia grafica non ce l'ho.. è xorg che si occupa di questo e, più ad alto livello il vario desktop manager (gnome, kde e affini)

Zahami
31-07-2009, 15:52
non vorrei dire stupidaggini.. ma linux ste cose non le ha.. linux di suo l'interfaccia grafica non ce l'ho.. è xorg che si occupa di questo e, più ad alto livello il vario desktop manager (gnome, kde e affini)


Complimenti, risposta fulminea! :zizi:

Comunque mi sembra strano che non ci siano queste funzioni, su internet ho trovato questo ma non so come usarlo:
http://www.opensource.apple.com/source/gcc/gcc-4061/gcc/config/linux.h

E poi scusa l'ignoranza, ma cos'è xorg? :D

Alex'87
31-07-2009, 15:59
Originariamente inviato da Zahami
E poi scusa l'ignoranza, ma cos'è xorg? :D

http://www.x.org/wiki/

Zahami
31-07-2009, 16:01
Grazie Alex'87, gli darò un occhiata...

Stoicenko
31-07-2009, 16:12
quelle sono delle definizioni che servono al gcc.. nulla di simile al windows.h

il punto è che in windows, come dovresti ben sapere, la programmazione nativa (win32) ha parte console e parte grafica perchè, come immagino tu abbia studiato, in windows la parte di gestione grafica è in kernel mode ( o giù di li ) mentre in *nix la parte di gestione grafica è a parte e gestita da o x windows o da x.org (di solito quest'ultimo in linux) e quindi di sistema operativo non c'è nulla..

Infatti tu normalmente hai lunux come kernel, x.org come gestore di interfaccia (server grafico) e gnome o kde o affine come desktop manager

Zahami
31-07-2009, 22:11
quelle sono delle definizioni che servono al gcc.. nulla di simile al windows.h

il punto è che in windows, come dovresti ben sapere, la programmazione nativa (win32) ha parte console e parte grafica perchè, come immagino tu abbia studiato, in windows la parte di gestione grafica è in kernel mode ( o giù di li ) mentre in *nix la parte di gestione grafica è a parte e gestita da o x windows o da x.org (di solito quest'ultimo in linux) e quindi di sistema operativo non c'è nulla..

Infatti tu normalmente hai lunux come kernel, x.org come gestore di interfaccia (server grafico) e gnome o kde o affine come desktop manager


Ok, ho capito perfettamente, ma con questo mi stai volendo dire che non c'è niente di simile a windows.h in Linux?

YuYevon
01-08-2009, 08:03
Originariamente inviato da Zahami
Ok, ho capito perfettamente, ma con questo mi stai volendo dire che non c'è niente di simile a windows.h in Linux?

windows.h contiene i prototipi delle API di Windows. In Linux, e in tutti i sistemi Unix-like, esiste unistd.h e altri header file che ti consentono di ricorrere alle API di sistema, ma nulla esiste tra queste per la gestione delle finestre. Il window manager in un sistema Unix (come GNU/Linux) è un'applicazione, non fa parte del kernel. Quando avvi Slackware, ad esempio, di default nemmeno ti viene caricato il server grafico, devi essere tu a farlo esplicitamente con startx, e questo ti consente di capire come il window manager e il desktop manager siano appunto dei veri e propri programmi in user space, non parte integrante del sistema ( ma con Ubuntu, Kubuntu, Xubuntu e tutta la dinastia, Fedora, Mandriva e altre pseduo-distro Linux di questo - così come di altro - non potresti mai rendertene conto ).

Se ti serve qualcosa per la gestione del terminale e del puntatore, ci sono le ncurses (che dovresti avere già installate sul tuo sistema). Se invece hai bisogno di sviluppare interfacce grafiche, allora devi ricorrere a librerie specifiche come le gtk+ o anche le Qt (so che è possibile sviluppare con le Qt anche in C, anche se non l'ho mai fatto) o altro ancora. E in generale sia le gtk+ che le Qt dovrebbero essere già instalallate sul tuo sistema, quindi non devi fare altro che trovarti un manuale (preferibilmente cartaceo e di buona qualità) e cominciare a programmare.

Zahami
01-08-2009, 15:56
windows.h contiene i prototipi delle API di Windows. In Linux, e in tutti i sistemi Unix-like, esiste unistd.h e altri header file che ti consentono di ricorrere alle API di sistema, ma nulla esiste tra queste per la gestione delle finestre. Il window manager in un sistema Unix (come GNU/Linux) è un'applicazione, non fa parte del kernel. Quando avvi Slackware, ad esempio, di default nemmeno ti viene caricato il server grafico, devi essere tu a farlo esplicitamente con startx, e questo ti consente di capire come il window manager e il desktop manager siano appunto dei veri e propri programmi in user space, non parte integrante del sistema ( ma con Ubuntu, Kubuntu, Xubuntu e tutta la dinastia, Fedora, Mandriva e altre pseduo-distro Linux di questo - così come di altro - non potresti mai rendertene conto ).

Se ti serve qualcosa per la gestione del terminale e del puntatore, ci sono le ncurses (che dovresti avere già installate sul tuo sistema). Se invece hai bisogno di sviluppare interfacce grafiche, allora devi ricorrere a librerie specifiche come le gtk+ o anche le Qt (so che è possibile sviluppare con le Qt anche in C, anche se non l'ho mai fatto) o altro ancora. E in generale sia le gtk+ che le Qt dovrebbero essere già instalallate sul tuo sistema, quindi non devi fare altro che trovarti un manuale (preferibilmente cartaceo e di buona qualità) e cominciare a programmare.

Grazie dell informazioni YuYevon! Era proprio quello che mi serviva :)

Loading