salut tous,
j'ai regardé pas mal de trucs sur le net et je n'ai pas trouvé une solution unique pour détecter sur quel OS je suis. es ce si complexe que cela ?
j'aimerai que mon programme puisse détecter si je suis sous unix ou windows car j'aimerai générer des dossiers (donc avec une commande qui dépend de l'OS).
je veux un code qui n'utilise pas de bibliothèques externe donc je laisse tomber toutes les solutions que j'ai pu trouver avec BOOST.
1°) Pour le moment, les deux meilleurs bout de code que j'ai trouvé sont ceux ci dessous. Qu'en pensez vous ? sont il vraiment portable et indépendant du compilateur par exemple ?
Si j'ai un windows ou linux ou max 64bits il ne va pas y avoir de soucis ?
j'ai vu sur le net des codes très proche de ceci mais avec des underscore devant les win, ou linux, unix...Etc
=> du coup faut il mettre des _ ou non ? il y a t il une différence ?
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #if defined(WIN32) && !defined(UNIX) /* Do windows stuff */ #elif defined(UNIX) && !defined(WIN32) /* Do linux stuff */ #else /* Error, both can't be defined or undefined same time */ #endif
2°) ma deuxième partie de question est sur l'écriture de fichiers dans des dossiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #if defined __APPLE__ || defined linux # include <unistd.h> #elif defined ( WIN32 ) || defined ( WIN64 ) # include <windows.h> #endif
une fois que j'ai détecté mon OS comment lui dire d'écrire mon fichier "test.txt" dans le dossier "myFolder" ?
ça doit être un truc dans ce genre :
pourriez vous m'aidez svp car je galère trop avec ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 if (windows) { string PATH=system("dir myFolder"); string pathPlusName=PATH+"test.txt"; ofstream file(pathPlusName, ios::trunc); file << "blabla" << endl; file.close(); } else { string PATH=system("mkdir myFolder"); string pathPlusName=PATH+"test.txt"; ofstream file(pathPlusName, ios::trunc); file << "blabla" << endl; file.close(); }![]()
Partager