Basit C programlaması yaparken aynı zorlukla karşılaştım. Belirli Linux sisteminizde, / usr / include dizini burada bir Linux işletim sistemine özgü birçok başlık dosyası içerir.
find . -name "*.h" | xargs grep PATH_MAX
PATH_MAX'ı tanımlayan birkaç başlık görmelisiniz; ne yazık ki bu değer farklı başlıklarda farklı şekilde tanımlandı. İşte Ubuntu'mdan bir liste (ayrıca grep programından bazı yanlış pozitif isabetleri manuel olarak kaldırdım).
./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 1024
./X11/extensions/XKBsrv.h:#define PATH_MAX MAXPATHLEN
./X11/extensions/XKBsrv.h:#define PATH_MAX 1024
./python2.7/osdefs.h:#ifndef PATH_MAX
./python2.7/osdefs.h:#define PATH_MAX MAXPATHLEN
./python2.7/osdefs.h:#if defined(PATH_MAX) && PATH_MAX > 1024
./python2.7/osdefs.h:#define MAXPATHLEN PATH_MAX
./linux/limits.h:#define PATH_MAX 4096 /* # chars in a path name including nul */
./linux/btrfs.h:#define BTRFS_INO_LOOKUP_PATH_MAX 4080
./linux/un.h:#define UNIX_PATH_MAX 108
/Linux/limits.h başlığı en büyük sayıya sahipti ve eklenecek en özgün başlık olmalıdır. Alternatif strateji, kendi stratejinizi farklı bir isimle tanımlamaktır, örneğin PATHLEN (4080, çoğu pratik durum için yeterince uzun). Asıl amacım, sorunuzun yanıtlarını aramak için bul özelliğini kullanmayı öğrenmek.