J'ai ce travail à la maison où je dois transférer un très gros fichier d'une source à plusieurs machines en utilisant un peu d'algorithme bittorrent. Au départ, je coupe les fichiers en morceaux et je transfère des morceaux à toutes les cibles. Les cibles ont l'intelligence de partager les morceaux qu'elles ont avec d'autres cibles. Ça fonctionne bien. Je voulais transférer un fichier de 4 Go, donc je goudrais quatre fichiers de 1 Go. Il n'a pas commis d'erreur lors de la création du fichier tar de 4 Go, mais à l'autre extrémité, lors de l'assemblage de tous les morceaux dans le fichier d'origine, il a été exclu en disant que la limite de taille de fichier était dépassée. Comment puis-je résoudre ce problème de limitation de 2 Go?Comment créer un fichier de taille supérieure à 2 Go sous Linux/Unix?
Répondre
Je peux penser à deux raisons possibles:
- Vous n'avez pas Large File Support activé dans votre noyau Linux
- Votre application est compilée avec le support des grands fichiers (vous devrez peut-être passer gcc supplémentaire drapeaux pour le dire d'utiliser des versions de certains fichiers de fonctions E/S 64 bits. par exemple
gcc -D_FILE_OFFSET_BITS=64
)
N'oubliez pas d'au moins mentionner le système de fichiers (pilote). Certains FS-es ont des limites arbitraires. Seuls Btrfs, ZFS et peut-être quelques autres ont des capacités de 128 bits (résultant par exemple [16 exaoctets (16 × 1018 octets) - Taille maximale d'un seul fichier] (http://en.wikipedia.org/wiki/ZFS#Capacity) – sehe
Note: '_FILE_OFFSET_BITS' passe' O_LARGEFILE' au syscall 'open' sur l'arc correct, mais ' _FILE_OFFSET_BITS' est préféré pour la portabilité: https://stackoverflow.com/questions/2888425/is-largefile- nécessaire-juste-pour-écrire-un-grand-fichier –
Cela dépend du filesystem type. Lorsque vous utilisez ext3, je n'ai pas de tels problèmes avec les fichiers qui sont nettement plus gros.
Si le disque sous-jacent est FAT, NTFS ou CIFS (SMB), vous devez également vous assurer que vous utilisez la dernière version du pilote approprié. Certains pilotes plus anciens ont des limites de taille de fichier comme celles que vous rencontrez.
Cela peut-il être relié à un system limitation configuration?
$ ulimit -a
vi /etc/security/limits.conf
vivek hard fsize 1024000
Si vous ne voulez pas de limite de retirer fsize
/etc/security/limits.conf
.
Si votre système le prend en charge, vous pouvez obtenir des conseils avec: man largefile
.
vous devez utiliser fseeko et ftello, voir fseeko(3) Notez que vous devez définir #define _FILE_OFFSET_BITS 64
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
- 1. Télécharger plus de 2 Go de fichier dans Asp.Net?
- 2. Comment créer un contrôle utilisateur dont la taille peut être supérieure à sa taille créée avec WPF
- 3. Créer un fichier avec une taille donnée en Java
- 4. taille de fichier de la bibliothèque partagée
- 5. Éviter le téléchargement de fichiers de taille supérieure à 10 Mo
- 6. créer un utilisateur sous SQL Server sous conditions
- 7. Comment exécuter un fichier SQL de 3 Go (Microsoft SQL Server)?
- 8. DB2 Equivalent à SQL's GO?
- 9. Définition d'un grand tableau de taille supérieure à une limite int non signée
- 10. Comment trier un listview par taille de fichier?
- 11. SMTP à travers ASP.Net 2 Taille de la session Problème
- 12. Comment puis-je créer un UITableViewCell de taille variable?
- 13. 64 bits VB.NET Allocation> 2 Go de RAM (bug .NET?)
- 14. Comment créer un ThreadPool de taille fixe dans .NET?
- 15. Comment créer un nouveau fichier Excel à l'aide de JXL?
- 16. MySql requête, sélectionnez supérieure à
- 17. Comment créer un sous-domaine à partir du code asp.net
- 18. MiniXml (php) impossible d'analyser les fichiers de taille supérieure à 100k
- 19. Comment créer un progiciel sous Unix/Linux
- 20. Limites UIView avec barre supérieure
- 21. Taille du fichier binaire
- 22. Comment créer un DIV basé sur la taille du navigateur?
- 23. Je n'arrive pas à créer un fichier CSV dans un fichier ZIP dans django
- 24. créer un fichier .mat à partir de python
- 25. Rsync créer un nouveau fichier sur la taille du fichier changer
- 26. Créer un jeu textuel en ligne à 2 joueurs
- 27. Accès à la mémoire supérieure à UINT_MAX * 4 en C?
- 28. GZipInputSteam DeCompression n'a pas fonctionné pour des données de taille supérieure à 13239
- 29. Comment créer un fichier std :: ofstream dans un fichier temporaire?
- 30. Code d'affichage de la plus petite puissance 2 supérieure ou égale à l'entier
Quel système de fichiers, version du noyau et distribution/version utilisez-vous? – womble
Re-tagged pour ajouter linux –