GNU/Linux >> Znalost Linux >  >> Linux

Kde je v Linuxu definován PATH_MAX?

Přenosný způsob, jak to udělat, je:

#define _POSIX_C_SOURCE 1
#include <limits.h>

Specifikace:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html


Je v 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 má nějaké nedostatky, jak je uvedeno v tomto blogu (díky paulsm4)


Uvědomte si, že stále není jasné, zda PATH_MAX definuje maximální délku s nebo bez koncového nulového bajtu. Může to být jedno nebo druhé v různých operačních systémech. Pokud během kompilace nemůžete nebo nechcete zkontrolovat, o jaký případ se jedná, je bezpečnější vynutit umělý limit PATH_MAX - 1 . Jistota je jistota. (Samozřejmě stále musíte rezervovat alespoň PATH_MAX bajtů paměti pro vyrovnávací paměť řetězce.)


Linux
  1. Správci systému Linux chtějí vědět:Kam zmizelo místo na disku?

  2. Kde je funkce itoa v Linuxu?

  3. Jak zjistit, kde je program v linuxu zaseknutý?

  1. Linux – kde je uložen pojmenovaný semafor?

  2. Linux:Kam umístit odkládací soubor

  3. Kde je prohlášení o ukončení podpory ifconfig (na linuxu)?

  1. Kali Linux 1.0.5 a softwarově definované rádio

  2. Vlastní Linux GUI:Kde začít?

  3. Kde linux ukládá můj syslog?