Wie return std::string aus der C ' s "getcwd" - Funktion

Sorry eintrichtern, aber ich versuche zu lernen :). Ist diese gut? Und ja, ich Pflege über Speicher-Lecks. Ich kann nicht finden, eine anständige Art der preallocating char*, weil es einfach zu sein scheint, keine cross-Plattform-Weg.

const string getcwd()
{
    char* a_cwd = getcwd(NULL,0);
    string s_cwd(a_cwd);
    free(a_cwd);
    return s_cwd;
}

UPDATE2: ohne Boost oder Qt, die die meisten gemeinsamen Sachen kann man lange-winded (siehe akzeptierte Antwort)

  • Sehen rubenvb s Vorherige Frage auf diese.
  • Was ist CAKE_getcwd? Google findet mir nichts. Plain old getcwd wird nicht funktionieren, da Sie die Hoffnung auf Solaris. Obwohl es Speicher, wenn Sie übergeben Sie einen null-Zeiger, der Arbeitsspeicher weist es basiert vollständig auf der zweiten getcwd parameter, nicht die Länge der Zeichenfolge zurückgeben möchte. Also, in deinem Beispiel, würde es zuordnen null-bytes (oder einfach nicht mit EINVAL).
  • CAKE_getcwd war mein workaround definieren, für die deprecation Warnung plain getcwd vs _getcwd auf Windows. Behoben
  • Ich persönlich bevorzuge informativer Titel als nur "Eine Frage zu dem Thema".. wir wissen, es ist eine Frage, die wir wissen, welches Thema es ist, weil der tags, Einzelheiten sind nett 🙂
  • Festen Titel und wird versuchen, mehr beschreibend in die Zukunft
InformationsquelleAutor rubenvb | 2010-05-19
Schreibe einen Kommentar