Maison >développement back-end >C++ >Quelles sont les meilleures façons de copier des fichiers de manière efficace et sûre ?
Copier un fichier de manière saine, sûre et efficace
Lors de la copie de fichiers, il est crucial de le faire de manière à conserver le l'intégrité et la sécurité des données. Voici quelques méthodes fiables :
#include <fstream> int main() { std::ifstream source("from.ogv", std::ios::binary); std::ofstream dest("to.ogv", std::ios::binary); dest << source.rdbuf(); }
Cette méthode utilise la méthode rdbuf() pour copier directement le contenu des fichiers.
#include <unistd.h> #include <fcntl.h> int main() { int source = open("from.ogv", O_RDONLY); int dest = open("to.ogv", O_WRONLY | O_CREAT | O_TRUNC); char buf[BUFSIZ]; int bytesRead; while ((bytesRead = read(source, buf, BUFSIZ)) > 0) { write(dest, buf, bytesRead); } close(source); close(dest); }
Cette approche exploite les appels système de niveau inférieur pour la manipulation de fichiers.
#include <sys/sendfile.h> int main() { int source = open("from.ogv", O_RDONLY); int dest = open("to.ogv", O_WRONLY | O_CREAT | O_TRUNC); struct stat stat_source; fstat(source, &stat_source); sendfile(dest, source, 0, stat_source.st_size); close(source); close(dest); }
Cette méthode décharge la copie des données directement sur le noyau, améliorant potentiellement performances.
#include <boost/filesystem.hpp> int main() { boost::filesystem::copy_file("from.ogv", "to.ogv"); }
Cette bibliothèque fournit une fonction spécialisée pour une copie efficace des fichiers.
Quand En choisissant une méthode, tenez compte de facteurs tels que :
Erreurs à éviter :
N'oubliez pas que la méthode optimale de copie de fichiers dépend des exigences spécifiques. Il est recommandé de procéder à une analyse comparative et de tester différentes approches pour trouver la solution la plus adaptée à vos besoins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!