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)