man(ISO) Especificación de insertar_directorio man(ISO)
NOMBRE
insertar_directorio - función que inserta un directorio en un fichero tipo mypackzip
UTILIZACIÓN
#include "s_header.h"
int insertar_directorio(char * dir_fuente, char * file_mypackzip);
DESCRIPCIÓN
La función insertar_directorio(...) debe insertar todo el contenido del
directorio dir_fuente al final del archivo file_mypackzip (con formato
mypackzip)
No debe insertar un elemento de tipo directorio, sino que debe insertar
cada una de las entradas de tipo fichero regular, contenidas contenidos
en dir_fuente. El nombre de cada fichero (regular) a insertar debe contener
la ruta (relativa) de dir_fuente. P.e
ret= insertar_directorio("dir1/subdir2", "./mypack.mpz");
Deberia insertar en el fichero ./mypack.mpz todos los ficheros regulares del
directorio dir1/subdir2 con el nombre dir1/subdir2/fich1,
dir1/subdir2/fich2,...
Si el directorio dir_fuente, tiene ruta absoluta, los ficheros regulares
se deben guardar sin la barra inicial "/" de dir_fuente
Si el fichero file_mypackzip no existe y dir_fuente se puede abrir se debe crear
file_mypackzip.
Si el file_mypackzip no existe o está vacío, dir_fuente se insertará al comienzo
de file_mypackzip.
El formato de fichero file_mypackzip se describe en la estructura s_header
/**
* @file s_header.h
* @author G.A.
* @date 06/05/2019
* @brief Include file struct s_header and struct s_info
* @details A .h C file with the definition struct s_header and struct s_info of mypackzip file format
*
*/
#define TAM_S_HEADER 512
#define MAX_FILE_NAME 256
struct s_info {
char Tipo; // ='Z'
char Compri; // ='N' (por defecto) o 'Y'. Indica si los datos
// del fichero están almacenados de forma
// comprimida
unsigned long TamOri; // Tamanio original del fichero (sin comprimir)
unsigned long TamComp; // Tamanio del fichero comprimido. Si los datos
// no estan comprimidos, su valor es el mismo de
// TamOri
char FileName[MAX_FILE_NAME]; // Nombre del fichero origen
};
#define TAM_S_INFO sizeof(struct s_info )
#define RESTO_HEADER (TAM_S_HEADER - TAM_S_INFO)
struct s_header {
struct s_info InfoF; // Información del fichero
char RestoHeader[RESTO_HEADER]; // ToDo...
};
VALOR DE RETORNO
Si todo funciona correctamente , insertar_directorio(...) devolverá cero. En
caso contrario no insertará nada en el file_mypackzip y retornará los errores
indicados en el apartado de ERRORES.
ERRORES
E_OPEN (1)
No se puede abrir o crear file_mypackzip.
E_OPEN2 (2)
No se puede abrir dir_fuente.
E_DESCO (99)
Otro tipo de errores
NOTAS
Nota1: El programa que utilice esta función , deberá informar por la salida
de error estándar un mensaje indicando el tipo de error
COMPATIBILIDAD
insertar_directorio() debería funcionar en cualquier sistema UNIX.
VEASE TAMBIEN
mypackzip(ISO), extraer_directorio(ISO), insertar_fichero(ISO), extraer_fichero(ISO).
AUTOR
Nombre del autor(es).
1.0 24 Feb 2020 man(ISO)