这是一个很好的问题。 我正在做一些简单的C编程并遇到了这个问题。 在您的特定Linux / Unix上,到/ usr / include目录,这里是您系统的所有头文件。
find . -name "*.h" | xargs grep PATH_MAX
您应该看到几个定义PATH_MAX的标头。 你可以看到这个值在不同的地方有不同的定义。 这是我的Ubuntu列表(我还手动删除了grep程序中的一些误报)。
./x86_64-linux-gnu/bits/posix1_lim.h:#define _POSIX_PATH_MAX 256
./X11/InitialI.h:#ifndef PATH_MAX
./X11/InitialI.h:#define PATH_MAX 512
./X11/InitialI.h:#ifndef PATH_MAX
./X11/InitialI.h:#define PATH_MAX MAXPATHLEN
./X11/InitialI.h:#define PATH_MAX 1024
./X11/Xos.h:# define PATH_MAX 4096
./X11/Xwindows.h:#if defined(WIN32) && (!defined(PATH_MAX) || PATH_MAX < 1024)
./X11/Xwindows.h:# undef PATH_MAX
./X11/Xwindows.h:# define PATH_MAX 1024
./X11/Xosdefs.h:# ifndef PATH_MAX
./X11/Xosdefs.h:# define PATH_MAX 4096
./X11/Xosdefs.h:# ifndef PATH_MAX
./X11/Xosdefs.h:# define PATH_MAX