man(ISO) Especificación de extraer_fichero man(ISO)
NOMBRE
extraer_fichero - función que extrae un fichero de un fichero con formato mypackzip.
UTILIZACIÓN
#include "s_header.h"
int extraer_fichero(char * file_mypackzip, unsigned long Posicion);
DESCRIPCIÓN
La función extraer_fichero() debe generar en el directorio actual un fichero contenido
en el fichero file_mypack (con formato mypackzip) que se pasa como argumento.
El fichero a extraer corresponde al fichero que se encuentre en el número de
registro num_fichero en el fichero fichero_empaquetado.
num_fichero debe ser un valor de 0 a TAM-1 donde TAM es en número máximo de ficheros
tenga el fichero fichero_empaquetado.
El nombre del fichero a crear será el que se indique en el registro indicado por
num_fichero ( ver 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 , xxx devolverá cero. En caso contrario no creará el
fichero de salida y retornará los errores indicados en el apartado de ERRORES.
ERRORES
E_OPEN (1)
No se puede abrir file_mypackzip.
E_POS (2)
Número de registro erróneo (Posicion) .
E_DESCO (3)
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
extraer_fichero() debería funcionar en cualquier sistema UNIX.
VEASE TAMBIEN
mypackzip(ISO), insertar_fichero(ISO).
AUTOR
Nombre del autor(es).
1.0 13 Feb 2020 man(ISO)