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)