Ich brauche eine plattformübergreifende Möglichkeit, das aktuelle Arbeitsverzeichnis zu erhalten (ja, getcwd tut, was ich will). Ich dachte, dies könnte den Trick tun:
#ifdef _WIN32
#include <direct.h>
#define getcwd _getcwd // stupid MSFT "deprecation" warning
#elif
#include <unistd.h>
#endif
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s_cwd(getcwd(NULL,0));
cout << "CWD is: " << s_cwd << endl;
}
Ich habe dies gelesen:
Es sollte keine Speicherlecks geben, und es sollte auch auf einem Mac funktionieren, richtig?
UPDATE: Ich fürchte, etwas ist immer noch falsch hier (ich versuche zu vermeiden, ein Char-Array mit einer bestimmten Länge zu erstellen, da es keinen richtigen Weg, um eine anständige Länge für getcwd zu erhalten):
char* a_cwd = getcwd(NULL,0);
string s_cwd(a_cwd);
free(a_cwd); // or delete a_cwd?