作成方法ファイルのサイズ以上2GB Linux/Unix?
質問
私はこのホーム作業をしています転送は非常に大きなファイルを一つのソースから複数の機械を使用bittorrentえのアルゴリズムです。当初私は切削中のファイルをチャンクに譲渡-チャンクへのすべてを対象とする。目標としての知の塊においてもその他の目しました。です。たかったのを転送するには、4GBのファイルかtarred四1GBファイルです。なかなかエラーが作成したの4GB tarファイルでの組み立てながらすべてのチャンクのオリジナルファイルでの誤差を出すとファイルサイズが上限値に達しました。かつこれは2GBに限問題なのか。
解決
私はを考えることができる二つの理由
- ん 大きなファイルがサポート 有効にLinuxカーネル
- ご応募いようにコンパイルされて大きなファイル(必要がある場合があります通gcc追加フラグに伝えなかで活用することができ64ビットのバージョンの特定のファイルI/Oます。例えば
gcc -D_FILE_OFFSET_BITS=64
)
他のヒント
これはファイルシステムタイプに依存します。 ext3ファイルシステムを使用している場合、私はかなり大きいファイルではこのような問題を持っていません。
基本となるディスクはFAT、NTFSまたはCIFS(SMB)である場合には、、あなたも、あなたが適切なドライバの最新バージョンを使用することを確認しなければなりません。あなたが経験するもののようなファイルサイズの制限があり、一部の古いドライバがあります。
これに関連した システム制限の設定 ?
$ ulimit -a
vi /etc/security/limits.conf
vivek hard fsize 1024000
ない場合は制限の削除 fsize
から /etc/security/limits.conf
.
お使いのシステムがそれをサポートしている場合は、
、あなたがヒントを得ることができます。man largefile
あなたはfseekoを使用する必要がありますし、ftello、 fseeko(3)のを参照してください
あなたが#define _FILE_OFFSET_BITS 64
を定義する必要があります。
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
所属していません StackOverflow