GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wo ist PATH_MAX in Linux definiert?

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.)


Linux
  1. Kali Linux 1.0.5 und Software Defined Radio

  2. Wo ist die Itoa-Funktion in Linux?

  3. Benutzerdefinierte Linux-GUI:Wo soll ich anfangen?

  4. Was ist die Schnittstelle für ARM-Systemaufrufe und wo ist sie im Linux-Kernel definiert?

  5. Wo ist ssize_t in Linux definiert?

W-Befehl unter Linux

Bei Befehl unter Linux

Linux – Wo wird der Environment-String tatsächlich gespeichert?

Wo ist die php.ini-Datei auf einem Linux/CentOS-PC?

Wo soll das zsh-Autocompletion-Skript unter Linux platziert werden?

Wo ist die Erklärung zur Ablehnung von ifconfig (unter Linux)?