lseek関数がファイル記述子を長い整数として返すのはなぜですか? [閉鎖]

lseek関数がファイル記述子を長い整数として返すのはなぜですか? [閉鎖]

本によるとUnix環境の高度なプログラミング:-

"lseek名の文字lは 'long'を意味します。off_tデータ型が導入される前は、オフセットパラメータと戻り値の両方が長かった。Cにlongが追加されたとき、lseekはバージョン7にありました(関数eekとバージョン6でも同様の機能を提供していると教えてください。」

私たちはファイル記述子の値が制限されていることを知っています。値は範囲内です。0-OPEN_MAX-1したがって、以前のバージョンがファイル記述子として長期間使用されている場合、これは、プロセスごとに開くことができるファイルの最大数をシステムワード形式(32ビットまたは64ビット)に応じて変更する必要があることを意味します。利用可能なファイル記述子の数はおそらく10^18です。私は正しいですか?

ベストアンサー1

lseekパラメータlongと戻り値は次のとおりです。オフセットファイルから追加しても、longファイル記述子には影響しません。

様々なワード長は、利用可能なオフセットサイズに影響を与える。lseek64解決策を見つけてください。

おすすめ記事