2016-04-24 10 views
3

I Dokumentation für die std::getenv() Funktion auf cppreference.com las, und es sagtWarum getenv hat() gibt eine nicht-const string

die Zeichenfolge Ändern von getenv undefinierten Verhalten aufruft.

Warum gibt die Funktion dann keine const char* zurück?

+1

Ich habe mich auch immer darüber gewundert ... Aber es ist in den letzten 25 Jahren etwas besser geworden ... Ich erinnere mich an die Zeit, als fopen() einen Zeiger auf eine schreibbare Zeichenkette erwartete. –

Antwort

6

Warum gibt die Funktion dann keinen const char* zurück?

Wahrscheinlich wegen der Kompatibilität mit älteren c-Standards, die const überhaupt nicht unterstützen.

+0

Es scheint so viele Probleme durch die Notwendigkeit der Abwärtskompatibilität zu geben – Curious

+1

@Curious Nun, es ist mindestens POSIX. –

+0

Was meinst du damit? – Curious

Verwandte Themen