elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Codigo para identificar el Sistema operativo [C/C++] [Resuelto]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Codigo para identificar el Sistema operativo [C/C++] [Resuelto]  (Leído 6,571 veces)
milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Codigo para identificar el Sistema operativo [C/C++] [Resuelto]
« en: 27 Septiembre 2014, 23:48 pm »

Hola a todos.
Sé que esta mal pedir codigo, o puedan pensar que quiero que me hagan la tarea, pero no es asi...

Verán, desde antes de entrar a la universidad yo usaba trisquel gnu/linux como S.O.
Pero cuando entre a la universidad me empezaron a asignar pequeños programitas de consola en C/C++ (hago menus con switch y requiero limpiar pantalla,etc) pero tengo que hacer mis programas usando system(cls) porque en la universidad solo hay pc's con windows xD!
Asi que desgraciadamente tuve que volver a windows, algunos dirán que es muy drástica esa decision  :-X
Lo que me gustaría es que me ayuden, si ustedes tienen algo para que mi programa reconozca que SO es y en base a eso, ejecute ciertas instrucciones
Ejemplo si el so es gnu/linux: que se ejecuten las ins. "clear" y si fuese windows "cls".
Otro ejemplo para hacer un programa que maneje archivos, el separador en la ruta en win es \ y en linux /.

Gracias de antemano.


« Última modificación: 28 Septiembre 2014, 00:43 am por free_c0de » En línea

La abstracción es la clave para lidiar con la complejidad.
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Codigo para identificar el Sistema operativo [C/C++]
« Respuesta #1 en: 28 Septiembre 2014, 00:20 am »

http://stackoverflow.com/questions/4605842/how-to-identify-platform-compiler-from-preprocessor-macros


En línea

milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Codigo para identificar el Sistema operativo [C/C++]
« Respuesta #2 en: 28 Septiembre 2014, 00:43 am »


Gracias man.
Bueno dejo el código, espero tambien le sirva a alguien.

Código
  1. #ifdef __linux__
  2. #define LIMPIAR "CLEAR"
  3. #endif // __linux__
  4.  
  5. #ifdef __MINGW32__
  6. #define LIMPIAR "CLS"
  7. #endif // __MINGW32__
  8.  
  9. #include <stdio.h>
  10.  
  11. int main(int argc, char *argv[]){
  12.    printf("texto de prueba");
  13.    system(LIMPIAR);
  14.    printf("texto de prueba2");
  15.    return 0;
  16. }
  17.  
Saludos  :)
En línea

La abstracción es la clave para lidiar con la complejidad.
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Codigo para identificar el Sistema operativo [C/C++] [Resuelto]
« Respuesta #3 en: 28 Septiembre 2014, 11:56 am »

Código
  1. #ifdef __MINGW32__
  2. #define LIMPIAR "CLS"
  3. #endif // __MINGW32__

Esto solo es válido si el compilador es MinGW sobre Windows de 32bits, mejor utiliza _WINDOWS, así será válido siempre.

Un saludo
En línea

Shout

Desconectado Desconectado

Mensajes: 191


Acid


Ver Perfil
Re: Codigo para identificar el Sistema operativo [C/C++] [Resuelto]
« Respuesta #4 en: 28 Septiembre 2014, 13:03 pm »

Y qué tal esto?

Código:
inline void ClearScreen() {
#ifdef _WINDOWS
system("cls");
#else if defined linux / mac / etc
...
#endif
}
Así te evitas macros de strings y tienes la posibilidad de hacer más de una cosa por SO (que puede que aquí no sirva mucho, pero en otras funciones "portables" puede servir)
En línea

I'll bring you death and pestilence, I'll bring you down on my own
milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Codigo para identificar el Sistema operativo [C/C++] [Resuelto]
« Respuesta #5 en: 28 Septiembre 2014, 17:03 pm »

No sabia que tambien podia poner
#ifdef _WINDOWS_
#endif
 más adentro del codigo  :o (al ver el simbolo # asumí que tenia que ir arriba xD).
Gracias a ambos, lo tendre en cuenta.
En línea

La abstracción es la clave para lidiar con la complejidad.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Identificar Sistema operativo en python ¿posible?
Scripting
redcrow 1 7,336 Último mensaje 9 Julio 2010, 13:29 pm
por Novlucker
Microsoft lanza la nueva versión de su sistema operativo de código abierto ....
Noticias
wolfbcn 9 5,492 Último mensaje 12 Julio 2011, 10:21 am
por _nivelinferior_
Nombres para sistema operativo « 1 2 3 »
Dudas Generales
GeorgArming 26 16,431 Último mensaje 8 Junio 2012, 17:41 pm
por 0xDani
[Resuelto] Sistema en php con lector código de barras
PHP
Penguin 5 6,631 Último mensaje 17 Abril 2018, 04:06 am
por Yaldabaot
Todo sobre Linux, el sistema operativo de código abierto
Noticias
El_Andaluz 1 1,966 Último mensaje 29 Marzo 2020, 04:21 am
por cr4zy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines