
Hoje me deparei com um problema (coisa de iniciante…): como fazer um programa em C que conseguisse saber se está rodando em windows, linux ou outro SO, sem precisar mudar o código?
Se você pensou “Pra quê eu vou querer fazer isso?”, veja só:
Imagine que seu programa trabalha com arquivos. Se você fosse acessar um arquivo no windows, seria algo como “c:\meuprograma\dados\arquivo.xml”. Agora, se fosse no linux, seria algo como “/home/raphael/arquivo.xml”.
E agora? Como seu programa pode tratar as duas formas?
Pesquisando um pouco, descobri que é muito simples. Precisa apenas colocar o codigo específico para cada SO num bloco como o mostrado abaixo:
#ifdef __linux__
//comando
#endif
Veja outro exemplo abaixo:
#include <stdio.h>
int main(){
#ifdef __linux__
printf(“estou no LINUX”);
#endif#ifdef __WIN32__
printf(“estou no WINDOWS”);
#endifreturn 0;
}
Pode testar esse código compilando no Windows e Linux, e veja o resultado.
Qqer coisa, deixem comentário!!