GNU/Linux >> Tutoriels Linux >  >> Linux

Où est défini PATH_MAX sous Linux ?

La façon portable de le faire est :

#define _POSIX_C_SOURCE 1
#include <limits.h>

Spécification :https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html


C'est en 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 a quelques défauts comme mentionné dans ce blog (merci paulsm4)


Sachez qu'il n'est toujours pas clair si PATH_MAX définit une longueur maximale avec ou sans octet nul à la fin. Il peut s'agir de l'un ou de l'autre sur différents systèmes d'exploitation. Si vous ne pouvez pas ou ne voulez pas vérifier de quelle casse il s'agit lors de la compilation, il est plus sûr de forcer la limite artificielle de PATH_MAX - 1 . Mieux vaut prévenir que guérir. (Évidemment, vous devez toujours réserver au moins PATH_MAX octets de mémoire pour mettre la chaîne en mémoire tampon.)


Linux
  1. Les administrateurs système Linux veulent savoir :où est passé mon espace disque ?

  2. Interface graphique Linux personnalisée :par où commencer ?

  3. Quelle est l'interface pour les appels système ARM et où est-elle définie dans le noyau Linux ?

  4. Où est défini ssize_t sous Linux ?

  5. Où dois-je installer mon application sous Linux ?

Commande W sous Linux

À la commande sous Linux

Linux - Où la chaîne d'environnement est-elle réellement stockée ?

Où se trouve le fichier php.ini sur un PC Linux/CentOS ?

Où placer le script d'auto-complétion zsh sous Linux ?

Où est la déclaration de dépréciation d'ifconfig (sur linux) ?