PDA

View Full Version : [C++] Capire il S.O


ohi
19-12-2007, 17:40
Ciao volevo chedervi come poter capire su che SO gira un programma scritto in c++,
esempio il programma stampa a video il S.O su cui gira

marko.fatto
19-12-2007, 17:45
#IFDEF win32

:fagiano: :fagiano:

francescosalvaggio
19-12-2007, 18:33
a volte da problemi a seconda se usi il Dev oppure il borland

cionci
19-12-2007, 20:27
a volte da problemi a seconda se usi il Dev oppure il borland
Non dovrebbe...

In ogni caso non si capisce se ohi vuole sapere a runtime (ad esempio su quale versione di Windows o Linux) o a tempo di compilazione...

ohi
21-12-2007, 10:18
Ciao grazie mille per le risp...io volevo chiedere in fase di runtime

cionci
21-12-2007, 10:22
Ciao grazie mille per le risp...io volevo chiedere in fase di runtime
Sistema operativo ? Windows o Linux ?

71104
21-12-2007, 12:33
Sistema operativo ? Windows o Linux ? spiritoso :asd:

cionci
21-12-2007, 13:05
spiritoso :asd:
No...tutt'altro. Almeno su quale famiglia di sistema operativo si deve sapere per determinare in fase di compilazione come rilevare il sistema operativo stesso.

Cioè dato che il codice compilato sarà diverso da famiglia a famiglia basta determinare in fase di compilazione su quale famiglia siamo e dopo rilevare a runtime la versione tramite le opportune istruzioni.

ohi
21-12-2007, 16:09
Sistema operativo ? Windows o Linux ?
mmh...io ero interessato a entrambi i casi...


No...tutt'altro. Almeno su quale famiglia di sistema operativo si deve sapere per determinare in fase di compilazione come rilevare il sistema operativo stesso.


ah quindi devi comunque sapere a priori su quale sistama usa.

k0nt3
21-12-2007, 20:50
mmh...io ero interessato a entrambi i casi...



ah quindi devi comunque sapere a priori su quale sistama usa.
banalmente un eseguibile per windows non può essere eseguito su linux (se non usando wine) e viceversa, quindi il problema si può affrontare in fase di compilazione con degli ifdef

marko.fatto
21-12-2007, 22:11
credo che nulla di compilato sia in grado di funzionare su più S.O.

l'unica soluzione credo sia java o qualche linguaggio di script :stordita:

cionci
22-12-2007, 07:36
ah quindi devi comunque sapere a priori su quale sistama usa.
Si perché devono essere creati almeno due eseguibili diversi, uno per Linux e uno per Windows (e uno per ogni altra famiglia di SO). Quindi devi comunque usare #ifdef. Poi a runtime puoi determinare quale sistema operativo sta girando all'interno con il sistema adottato da quella "famiglia" di SO.

ohi
22-12-2007, 13:15
Grazie mille...(effetivamente se fosse stato possibile Sun nn avrebbe creato la Java Virtual Machine)