Linux ボックスでファイル名の最大長を決定するにはどうすればよいですか?
PHP プログラミング言語で推奨されます。
PHP で (まだ) 公開されていないpathconfまたはfpathconfが必要です。(彼らがそうであるとき、彼らはおそらくそうなるでしょうposix_pathconf。)
getconf同じ機能へのコマンドライン ユーティリティ インターフェイスである にシェル アウトすることもできます。システムでこれを試してください:
$ getconf NAME_MAX /tmp
$ getconf PATH_MAX /tmp
プログラムで決定する必要はありません。255 バイトです。
編集:非常に少数のファイルシステム(reiser、私は信じています)でより長いファイル名を持つことができますが、255に固執すると、アプリはどのLinuxインストールでも使用できます.
ほとんどのLinux ファイル システムの最大ファイル長は 255 です。これを汎用定数として使用し、Linux の既知のファイル システムに合わせて変更するのがおそらく最善です。以下は、使用される可能性のあるファイル システムの優れた比較です。最大ファイル長がそこにリストされています。
realpath() を使用できると思います。最善のアプローチはわかりませんが、たとえば:
$maxlen=264-strlen(realpath('index.php')));
264 は 255 (最大パス リム) + 9 ('index.php' len) です。したがって、制限から現在のパスの長さを差し引くと、現在のパスの長さが最大になります。