GNU/Linux >> Linux Esercitazione >  >> Linux

Dove è definito PATH_MAX in Linux?

Il modo portatile per farlo è:

#define _POSIX_C_SOURCE 1
#include <limits.h>

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


È 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 ha alcuni difetti come menzionato in questo blog (grazie paulsm4)


Tieni presente che non è ancora chiaro se PATH_MAX definisce una lunghezza massima con o senza un byte nul finale. Potrebbe essere l'uno o l'altro su diversi sistemi operativi. Se non puoi o non vuoi controllare quale maiuscolo è durante la compilazione, è più sicuro forzare il limite artificiale di PATH_MAX - 1 . Meglio prevenire che curare. (Ovviamente, devi ancora prenotare almeno PATH_MAX byte di memoria per bufferizzare la stringa.)


Linux
  1. Qual è l'interfaccia per le chiamate di sistema ARM e dove è definita nel kernel Linux?

  2. Dov'è il codice di pianificazione di Linux CFS?

  3. Dove è definito ssize_t in Linux?

  4. Dove devo installare la mia app su Linux?

  5. Dov'è la dichiarazione di deprecazione di ifconfig (su Linux)?

Comando W in Linux

Al comando in Linux

Linux:dove viene effettivamente memorizzata la stringa dell'ambiente?

Dov'è il file php.ini su un PC Linux/CentOS?

Dove posizionare lo script di completamento automatico zsh su Linux?

Linux:dove mettere il file di scambio