Domanda

Ho questo lavoro a casa dove devo trasferire un file di grandi dimensioni da una fonte a più macchine utilizzando bittorrent pò di algoritmo. Inizialmente Sto tagliando i file a pezzi e mi trasferisco a pezzi tutti gli obiettivi. Gli obiettivi hanno l'intelligenza di condividere i pezzi che hanno con altri obiettivi. Funziona bene. Ho voluto trasferire un file da 4 GB in modo da asfaltata quattro file da 1 GB. Non ha errore fuori quando ho creato il file tar da 4 GB, ma dall'altra parte, mentre l'assemblaggio tutti i pezzi al file esso errori originali fuori dicendo limite di dimensione del file superato. Come posso fare per risolvere questo problema limitazione 2GB?

È stato utile?

Soluzione

Mi vengono in mente due possibili ragioni:

  • Non hai Large File Support abilitato nel kernel Linux
  • L'applicazione non è compilato con il supporto di file di grandi dimensioni (potrebbe essere necessario passare gcc flag extra per dirgli di utilizzare le versioni a 64 bit di certo file funzioni di I / O. Es gcc -D_FILE_OFFSET_BITS=64)

Altri suggerimenti

Questo dipende dalla filesystem di tipo . Quando si utilizza ext3, non ho questi problemi con i file che sono significativamente più grandi.

Se il disco di base è FAT, NTFS o CIFS (SMB), è inoltre necessario assicurarsi di utilizzare la versione più recente del driver appropriato. Ci sono alcuni vecchi driver che hanno limiti di dimensioni dei file come quelle che si verificano.

Questo potrebbe essere correlato a un configurazione limitazioni del sistema ?

$ ulimit -a
vi /etc/security/limits.conf
vivek       hard  fsize  1024000

Se non si desidera alcun limite fsize togliere dal /etc/security/limits.conf.

Se il sistema lo supporta, è possibile ottenere suggerimenti con:. man largefile

Si dovrebbe usare fseeko e ftello, vedi fseeko (3) Nota È necessario definire #define _FILE_OFFSET_BITS 64

#define _FILE_OFFSET_BITS 64
#include <stdio.h>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top