2015-02-09 141 views
3

我正在寫一個'find'like utility來搜索基於freebsd的系統中的某些特定文件。在freeBSD 9中的stat()調用可以接受長度爲1024個字符的路徑,儘管linux最多支持4K字符路徑。如何在FreeBSD系統中增加MAX_PATH_LENGTH?

系統本身有一個非FreeBSD(它的商業操作系統)的文件系統,並且該文件系統對MAX_PATH_LENGTH有很高的限制。

如果某個用戶在linux上掛載了一個卷並創建了一個路徑長度大於1K的目錄層次結構,那麼儘管文件系統會支持它,但freeBSD lstat/stat調用將會失敗。

有沒有辦法,或者我可以得到這個限制以某種方式增加?

回答

2

您應該可以通過將PATH_MAX in /usr/src/sys/sys/syslimits.h的值加上並對整個系統(內核,庫和使用PATH_MAX,MAXPATHLEN或MAXINTERP的任何已安裝軟件)進行完全重建來完成此操作。只要確保keep it under 64k

如果你走這條路線,避免使用二進制包(如通過pkg,portmaster或portupgrade)。堅持編譯和安裝/ usr/ports之外,你會沒事的。

相關問題