|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
[C++] Linux Copia File
Esiste un supporto da parte del sistema alla copia dei file tipo il CopyFile di Windows?
Non ho trovato niente. Avendo la necessità di spostare/copiare file di qualche centinaio di MB mi chiedevo se ci fosse qualche metodo più indicato rispetto alla copia degli stream buffer fatta così: Codice:
std::ifstream ifs("input.txt", std::ios::binary);
std::ofstream ofs("output.txt", std::ios::binary);
ofs << ifs.rdbuf();
|
|
|
|
|
|
#2 |
|
Registered User
Iscritto dal: Feb 2008
Messaggi: 77
|
Puoi provare se questo metodo è più veloce
Codice:
#include <fstream>
#define BUFFER_SIZE 256
int main(int argc, char **argv)
{
std::ifstream in(argv[1], std::ios_base::binary);
std::ofstream out(argv[2], std::ios_base::binary);
char buffer[BUFFER_SIZE];
while(!in.eof())
{
in.read(buffer, BUFFER_SIZE);
out.write(buffer, in.gcount());
}
return 0;
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Grazie, ma no non è più veloce.
Volevo sapere se esiste qualche api del sistema operativo per la copia dei file. Ma sembrerebbe proprio di no. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
ostringstream oss;
oss << "cp " << argv[1] << " " << argv[2]; system(oss.str());
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Speravo in qualcosa controllabile da codice. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Avrebbero potuto fare una API nelle libc, ma non sarebbe stata molto diversa delle due righe che puoi scrivere a mano. La velocità del codice influisce poco, la copia di un file - specie se grosso - è un processo sostanzialmente i/o bound.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
In caso di file particolarmente grossi ci sono alternative a cp? |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:17.




















