J'ai une quantité importante de données générées dans un programme C. Je veux écrire les données dans des fichiers 1gb.Comment puis-je suspendre l'écriture de fichier lorsque le fichier atteint une certaine taille et puis créer un nouveau fichier
Comment est-ce que je ferais cela? À l'heure actuelle, je fais une boucle while (avec une condition qui continuera jusqu'à ce que les données de 5 gbs soient créées). Il crée une struct et l'écrit dans un fichier:
fwrite(storedVal, sizeof(keyEncode),1,fp);
//storedVal being the struct (which contains my data)
Je voudrais chaque fichier à être appelé codes1, codes2 et l'incrément jusqu'à ce que la boucle while est terminée. Je suis sûr qu'il inclurait une instruction if basée sur la taille du fichier en cours d'écriture. Puis quand il atteint 1gb, il commence sur un nouveau fichier.
modifier //
fait, il devrait être une sorte de while, qui continue à la taille ecriture, jusqu'à ce que le fichier atteint 1Go et commence le nouveau
Mon dossier au moment est ouvert avant ma boucle while:
fp = fopen("keys.dat", "wb");
while(condition is true) {
//create a new struct with data and
fwrite(storedVal, sizeof(keyEncode),1,fp);
}
Je veux presque -1 pour 'ONE_GIGABYTE'. 'MAX_SIZE_PER_FILE' serait raisonnable, mais éviter les nombres magiques en écrivant le nom du nombre comme une chaîne est à peu près le dogme de programmation le plus idiot auquel je puisse penser. Voulez-vous écrire 'int x = FOURTY_TWO;'? –
est int fp, destiné à être File * fp ???????? si non, qu'est-ce que c'est? – molleman
@R "notez qu'il y a des parties à remplir" - Je ne suis pas ici pour nommer ses variables ou ses constantes, je veux juste qu'il soit clair pour la question de savoir quelles valeurs devraient aller là où . Aussi un gigaoctet est un nombre avec une unité non seulement un nombre –