Nel corso della sua esecuzione la funzione verifica:
- che il file da copiare esista nel vfs
- che nella cartella di destinazione non ci sia un file con lo stesso nome che avrà il file copiato
- che il path di destinazione non sia un file
- che la cartella in cui si tenta di copiare il file non abbia raggiunto il limite massimo di elementi contenuti
La copia vera e propria, viene effettuata dalla funzione insert_file_vd2vd che effettua le stesse operazioni della insert_file_fs2vd, con l'unica differenza che non deve occuparsi di leggere il file, perché gli viene già passato il buffer dal corpo della cp. Le operazioni finali sono analoghe a quelle eseguite nella copia da file system a vfs.
Gli errori più comuni che il comando cp può restituire sono:
- errore di percorso invalido nel file system reale
- scrittura impossibile nel file system reale
- lettura impossibile dal file system reale
- dimensione eccessiva del file da copiare
- impossibile copiare una directory
- errore di tipologia del file da copiare
- tentata sovrascrittura
- tentata sovrascrittura di un file nel file system reale
Lorenzo Baloci, Daniele Turato, Alessio Zennaro
- Settembre 2006