man(ISO) Especificación de mypackzip man(ISO)
NOMBRE
mypackzip - crea una copia de un fichero en formato mypackzip
UTILIZACION
./mypackzip fich_origen fich_destino
DESCRIPCION
mypackzip debe realizar una copia del contenido de datos del fich_origen
sobre fich_destino con un formato especial.
El formato del fichero destino es el indicado en la siguiente figura:
+++++++++++++++++++++
+ +
+ struct s_header +
+ +
+++++++++++++++++++++
+ +
+ Data File +
+ +
+ +
+++++++++++++++++++++
En el fichero_destino en primer lugar debe tener la cabecera con información del fichero.
(struct s_header). Seguido a la cabecera deben estar los datos del fichero.
El formato de la cabecera es el indicado en la estructura de datos s_header.
La estructura s_header está definida en el struct s_header y se compone a su vez de dos
tipos de datos. La Información de control del fichero (InfoF)y un campo de relleno RestoHeader
/**
* @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...
};
VALORES DE SALIDA
En las siguientes situaciones no realizará la copia (comprimida o no) y devolverá
un código de error, informando además por la salida estándar de errores un mensaje indicando
el tipo de error:
1: Número de argumentos erróneo.
2: No existe fich_origen.
3: No se dispone de permisos para esta operación. No se dispone de permisos para
crear o modificar fich_destino.
4: Otro tipo de errores.
En caso contrario (si no hay errores) devuelve 0.
COMPATIBILIDAD
mypackzip debería funcionar en cualquier sistema UNIX.
VEASE TAMBIEN
cp(1), open(2), stee(ISO).
AUTOR
Nombre del autor(es).
1.0 10 Feb 2020 man(ISO)