2010-02-14 17 views
7

(In C/C++/Linux)file concatenare senza copiare il loro contenuto

Esiste un modo per concatenare file A e il file B (o addirittura aggiungere il contenuto proprio da A a quella di B), solo modificando il file system senza il sovraccarico di copia dei dati? Il file A può essere quindi scartato.

Grazie

+0

Quindi, se si dispone di 2 file di 1 byte ciascuno, si finisce con 1 file contenente 2 byte? Questo sarà un problema nello storage orientato ai blocchi - e la maggior parte della moderna memoria non volatile commerciale è orientata ai blocchi, a parte il flash NOR. Ma qualsiasi cosa sia SATA o USB-attached, così come lo sono le schede SD. – MSalters

risposta

7

Se i file sono stati strutturato a blocchi, e se il sistema operativo supportato file strutturato a blocchi (come fanno alcuni) poi (in linea di principio) di sì. Ma come stai chiedendo di Linux, presumo tu stia parlando di un file system orientato al flusso di byte, in cui un blocco del disco potrebbe non essere completamente utilizzato. In questo caso, alcune copie sono inevitabili e in pratica devi copiare l'intero file.

2

È possibile scrivere il proprio file system (ad esempio con FUSE) che fornisce pseudo file per una concatenazione economica. Ma immagino che sarebbe eccessivo (per ogni caso d'uso), dato che devi preoccuparti di riferimenti e cose.

Problemi correlati