2013-03-11 1 views
0

Je voulais obtenir le programme PATH of Current Working Directory dans C++. Il devrait fonctionner pour Windows, Sun Solaris, UNIX. J'ai trouvé this pour être ma réponse. Mais notre compilateur donne l'erreur qu'il ne peut pas trouver le fichier unistd.h. Je compile dans Windows. J'ai utilisé exactement le même code que celui mentionné dans la bonne réponse. Quel est le problème ici?Problème avec getcwd C++

Plus mon patron remet en question le fonctionnement de ce code. J'ai commenté les lignes UNIX & le programme fonctionne correctement dans Windows. Même il ne sait pas comment ce code fonctionne. Quelqu'un peut-il m'expliquer s'il vous plaît ce code s'il vous plaît? Merci.

+0

Lisez à nouveau la réponse liée et posez-vous les questions suivantes: votre construction Windows définit-elle le symbole WINDOWS de sorte que les droits inclus soient utilisés? 'unistd.h' n'existe pas sous Windows et le code est assez explicite pour ne pas vouloir l'inclure, il utilise' _getcwd' de direct.h à la place. –

Répondre

0

<unistd.h> n'est pas censé être trouvé sur Windows. Le fichier à inclure dans Windows selon How do I get the directory that a program is running from? est <direct.h>. Vérifiez vos macros de préprocesseur.

+0

effectivement je les ai ajoutés dans une fonction où je veux le chemin. C'est bon? ou devrait l'ajouter globalement? –

+0

@CAD_coding Vous ne pouvez pas inclure d'en-têtes dans une fonction, alors que faites-vous exactement? Le code suppose que 'WINDOWS' est défini lors de la compilation sous Windows, vérifiez donc votre variable de préprocesseur pour vous assurer qu'elle y est définie. – Voo

+0

Les lignes commençant par '# ifdef' jusqu'à la ligne' # endif' devraient être ajoutées en haut, pas dans la fonction – uba