First commit 05/09/1999
This commit is contained in:
commit
ba40721193
88
JDIRECT.H
Normal file
88
JDIRECT.H
Normal file
@ -0,0 +1,88 @@
|
||||
/*
|
||||
Este fichero forma parte del Curso de C
|
||||
Copyright (C) 1991 Grupo Editorial Jackson
|
||||
Todos los derechos reservados
|
||||
*/
|
||||
|
||||
|
||||
/* JDIRECT.H: cabecera para utilizar las funciones de b£squeda en los */
|
||||
/* directorios MS-DOS tanto con Quick C como con Turbo C. */
|
||||
|
||||
|
||||
#if !defined(__JDIRECT_H_) /*incluye s¢lo si no est ya incluido*/
|
||||
#define __JDIRECT_H_
|
||||
|
||||
|
||||
#include <dos.h>
|
||||
|
||||
typedef struct { /*define el tipo FileInfo: <1> */
|
||||
char reserved[21]; /*espacio reservado para DOS*/
|
||||
char atrib; /*atributos del fichero*/
|
||||
struct { /*tiempo de la £ltima modific. <2>*/
|
||||
unsigned int sec : 5;
|
||||
unsigned int min : 6;
|
||||
unsigned int hours : 5;
|
||||
} time;
|
||||
struct { /*fecha de la £ltima modific. <3>*/
|
||||
unsigned int day : 5;
|
||||
unsigned int month : 4;
|
||||
unsigned int year : 7;
|
||||
} date;
|
||||
long size; /*dimensiones del fichero*/
|
||||
char name[13]; /*nombre del fichero*/
|
||||
} FileInfo;
|
||||
|
||||
|
||||
#ifdef __TURBOC__ /*compila si Turbo C*/
|
||||
|
||||
#include <dir.h>
|
||||
|
||||
// #define FA_NORMAL 0 /*constante para ficheros 'normales'*/
|
||||
|
||||
/*convierte el tipo del puntero a datos del fichero: */
|
||||
|
||||
#define findfirst(p,b,a) findfirst(p,(struct ffblk *)b,a) /*<4>*/
|
||||
#define findnext(b) findnext((struct ffblk *)b)
|
||||
|
||||
#else /*compila si Quick C*/
|
||||
|
||||
#include <direct.h>
|
||||
|
||||
#define FA_NORMAL _A_NORMAL /*convierte nombres const. atributos: */
|
||||
#define FA_RDONLY _A_RDONLY /*s¢lo lectura*/
|
||||
#define FA_HIDDEN _A_HIDDEN /*oculto*/
|
||||
#define FA_SYSTEM _A_SYSTEM /*de sistema*/
|
||||
#define FA_LABEL _A_VOLID /*etiqueta de volumen*/
|
||||
#define FA_DIREC _A_SUBDIR /*directorio*/
|
||||
#define FA_ARCH _A_ARCH /*archivo*/
|
||||
|
||||
/*convierte nombres funciones, cambia orden argumentos de findfirst: */
|
||||
|
||||
#define findfirst(p,b,a) (int)_dos_findfirst(p,a,(struct find_t *)b)
|
||||
#define findnext(b) (int)_dos_findnext((struct find_t *)b) /*<5>*/
|
||||
|
||||
#endif /*fin opci¢n Turbo C / Quick C*/
|
||||
|
||||
|
||||
#endif /*(si no incluido)*/
|
||||
|
||||
|
||||
/* Notas sobre DIRECT.H:
|
||||
|
||||
<1> FileInfo es una estructura que contiene informaci¢n relativa a
|
||||
un fichero, restituida por findfirst y findnext.
|
||||
<2> La componente time es un int (16 bits) que contiene en realidad tres
|
||||
valores, cada uno conservado en un grupo de bits adyacentes. El orden
|
||||
de lectura de los bits depende del compilador, as¡ esta definici¢n no
|
||||
es port til (aunque sirve tanto con Turbo C como con Quick C). Se
|
||||
pod¡an escribir tambi‚n simplemente los tres campos de bits como
|
||||
componentes de la estructura FileInfo (sin utilizar la estructura
|
||||
time), pero hemos preferido subrayar que los tres campos de bits
|
||||
forman en conjunto un int: esto puede ser £til por comodidad de
|
||||
manipulaci¢n (por ej. pasar time a una funci¢n).
|
||||
<3> Ver nota 2.
|
||||
<4> Este cast, desgraciadamente, le deja al compilador sin posibilidades
|
||||
de comprobar los errores. S¢lo lo hemos utilizado para asegurar la
|
||||
portabilidad entre Turbo C 2.0 y Quick C 2.0.
|
||||
<5> Ver nota 4.
|
||||
*/
|
Loading…
x
Reference in New Issue
Block a user