man(ISO)                 Especificación de insertar_fichero                man(ISO)

NOMBRE
       insertar_fichero - función que inserta un fichero de un fichero con formato mypackzip
       
UTILIZACIÓN

      #include "s_header.h"
      
      int insertar_fichero(char * fich_origen, long Posicion, char * file_mypackzip);
    
DESCRIPCIÓN
       La función insertar_fichero() debe insertar  el fichero fich_origen en la posición 
       correpondiente a Posicion en el fichero file_mypackzip (con formato mypackzip) 
       Posicion corresponde al número de registro en el fichero file_mypackzip.  
	   
       Posicion debe ser un valor de -1  a TAM-1 donde TAM es en número máximo de ficheros
       tenga el fichero fichero_empaquetado.
  	   
       Si Posicion es -1 o mayor que el numero de ficheros contenidos en file_mypackzip,
       fich_origen se insertará al final del archivo file_mypackzip.
       
       Si el fichero file_mypackzip no existe y fich_origen se puede abrir se debe crear 
       file_mypackzip.
       Si el file_mypackzip no existe o está vacío, fich_origen 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_fichero() 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_POS    (2) 
           Número de registro erróneo (Posicion) .
       E_OPEN2   (3) 
           No se puede abrir  fich_origen.
       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_fichero() debería funcionar en cualquier sistema UNIX.

VEASE TAMBIEN
       mypackzip(ISO), extraer_fichero(ISO).

AUTOR
       Nombre del autor(es).

1.0                               13 Feb 2020                        man(ISO)