Der tragbare Weg, dies zu tun, ist:
#define _POSIX_C_SOURCE 1
#include <limits.h>
Spezifikation:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
Es ist in linux/limits.h
.
#define PATH_MAX 4096 /* # chars in a path name including nul */
#include <linux/limits.h>
char current_path[PATH_MAX];
PATH_MAX
hat einige Mängel, wie in diesem Blog erwähnt (danke paulsm4)
Beachten Sie, dass noch unklar ist, ob PATH_MAX
definiert eine maximale Länge mit oder ohne abschließendem Null-Byte. Es kann das eine oder andere auf verschiedenen Betriebssystemen sein. Wenn Sie während der Kompilierung nicht prüfen können, um welche Groß-/Kleinschreibung es sich handelt, ist es sicherer, eine künstliche Grenze von PATH_MAX - 1
zu erzwingen . Sicher ist sicher. (Natürlich müssen Sie noch mindestens PATH_MAX
reservieren Byte Speicher zum Puffern der Zeichenfolge.)