Frage

Ich habe diese zu Hause aus arbeiten, wo ich eine sehr große Datei von einer Quelle zu mehreren Maschinen ein bisschen von Algorithmus Bittorrent zu übertragen haben. Zunächst bin Schneiden ich die Dateien in Stücke und ich übertragen Brocken zu allen Zielen. Ziele haben die Intelligenz die Stücke sie mit anderen Zielen zu teilen. Es funktioniert gut. Ich wollte eine 4 GB-Datei übertragen, so dass ich vier 1GB Dateien geteert. Es hat Fehler nicht aus, wenn ich die TAR-Datei 4 GB erstellt, aber am anderen Ende, während der Montage der alle Stücke zurück in die Originaldatei es Fehler aus Dateigrößenbeschränkung überschritten sagen. Wie kann ich mich über dieses 2 GB Beschränkung Problem zu lösen?

War es hilfreich?

Lösung

kann ich mir vorstellen kann zwei Gründe haben:

  • Sie haben noch Large File Support in Ihrem Linux-Kernel aktiviert
  • Ihre Anwendung ist nicht mit Unterstützung für große Dateien kompiliert (möglicherweise müssen Sie gcc zusätzliche Flags gibt ihm zu sagen, 64-Bit-Versionen von bestimmten Datei zu verwenden, I / O-Funktionen. Z gcc -D_FILE_OFFSET_BITS=64)

Andere Tipps

Dies ist abhängig von dem Dateisystem-Typ . Wenn ext3 verwenden, habe ich keine solche Probleme mit Dateien, die deutlich größer sind.

Wenn die zugrunde liegende Platte ist FAT, NTFS oder CIFS (SMB), müssen Sie auch sicherstellen, dass Sie die neueste Version des entsprechenden Treiber verwenden. Es gibt einige ältere Treiber, die Dateigrößenbeschränkungen wie die, die haben Sie erfahren.

Sie sollten fseeko verwenden und ftello finden Sie unter fseeko (3) Hinweis: Sie sollten #define _FILE_OFFSET_BITS 64 definieren

#define _FILE_OFFSET_BITS 64
#include <stdio.h>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top