FICHEROS INCLUDE DE TURBO C
Los ficheros include definidos por el ANSI C van marcados con
un asterisco.
alloc.h Contiene funciones para manejo de memoria.
assert.h* Define el macro-debugger assert.
bios.h Contiene funciones que utilizan llamadas a ROM
BIOS.
conio.h Llamadas a rutinas I/O de consola del DOS.
ctype.h* Clasificaci¢n y conversi¢n de caracteres.
dir.h Estructuras, macros y funciones para trabajar
con directorios y nombres de path.
dos.h Define varias constantes y declaraciones
necesarias para el DOS y llamadas
espec¡ficas al 8086.
errno.h* Define constantes mnem¢nicas para c¢digos de
error.
fcntl.h Define constantes utilizadas en conexi¢n con la
librer¡a de funciones open.
float.h* Contiene par metros para rutinas en punto
flotante.
graphics.h Declara prototipos para funciones gr ficas.
io.h Contiene estructuras y declaraciones para
rutinas I/O de bajo nivel.
limits.h* Contiene par metros de entorno, informaci¢n en
torno a limitaciones en tiempo de compilaci¢n.
math.h* Declara prototipos de funciones matem ticas.
mem.h Declara funciones para manipulaci¢n de memoria.
process.h Contiene estructuras y declaraciones para
funciones spawn... y exec...
setjmp.h* Define un tipo jmp-buf utilizado por el longjmp
y setjmp.
share.h Define par metros utilizados en funciones a
utilizar por ficheros-sharing.
signal.h* Constes y declaraciones a utilizar en las
funciones signal y raise.
stdargs.h* Define los macros utilizados para leer la lista
de argumentos en funciones declaradas para
aceptar un n£mero variable de argumentos.
stddef.h* Define varios macros y datos comunes.
stdio.h* Define I/O standard UNIX.
stdlib.h* Rutinas de conversi¢n, b£squeda, ordenaci¢n
etc.
string.h* Manipulaci¢n de cadena y rutinas de memoria.
sys\stat.h Define constantes simb¢licas usadas para crear
y abrir ficheros.
sys\timeb.h Declara la funci¢n ftime y la estructura timeb.
sys\types.h Declara el tipo time_t usado en las funciones
time.
time.h* Estructuras para conversi¢n de rutinas time.
values.h Define constantes para compatibilidad UNIX.
VARIABLES GLOBALES
_argc
Funci¢n Contador de argumentos de la l¡nea de comandos.
Sintaxis extern int _argc;
Declarado dos.h
Nota: _argc contiene el valor de argc pasado a main al
arrancar el programa.
_argv
Funci¢n Array de punteros a argumentos de la l¡nea comandos.
Sintaxis extern char *_argv[];
Declarado dos.h
daylight
Funci¢n Indica si Daylight Savings Time tiene efecto.
Sintaxis extern int daylight;
Declarado time.h
Nota: dayliht es utilizado por las funciones de fecha y hora.
Tiene valor 1 para Daylight Savings Time y 0 para
Standard Time.
directvideo
Funci¢n Flag de control de salida video.
Sintaxis extern int directvideo;
Declarado conio.h
Nota: Controla si la salida del programa (por ejemplo en
cputs) accede directamente a la RAM video (directvideo =
1) o lo hace mediante llamadas ROM BIOS (directvideo =
0). El valor por defecto es 1.
_8087
Funci¢n Flag del coprocesador.
Sintaxis extern int _8087;
Declarado dos.h
Nota: La variable _8087 es puesta al valor 1, 2 o 3 con la
autodetecci¢n del coprocesador 8087, 80287 o 80387 de lo
contrario valdr 0.
environ
Funci¢n Acceso a variables de entorno del DOS.
Sintaxis extern char *environ[];
Declarado dos.h
Nota: environ es un array de punteros a cadenas, es utilizado
para acceder y alterar las variables de entorno del DOS.
errno, _doserrno, sys_errlist, sys_nerr
Funci¢n Permite a perror imprimir mensajes de error.
Sintaxis extern int errno;
extern int _doserrno;
extern char *sys_errlist[];
extern int sys_nerr;
Declarado errno.h, stdlib.h (_doserrno en dos.h).
_fmode
Funci¢n Determina el modo de lec./esc. de ficheros por
omisi¢n.
Sintaxis extern int _fmode;
Declarado fcntl.h
Nota: _fmode determina la apertura de los ficheros en modo
texto o binario. El valor por omisi¢n es O_TEXT, de lo
contrario O_BINARY.
_heaplen
Funci¢n Controla la longitud del near heap.
Sintaxis extern unsigned _heaplen;
Declarado dos.h
Nota: Especifica el tama¤o de near heap en el modelo de datos
small (tiny, small y medium). _heaplen no existe en los
modelos largos de memoria.
_osmajor, _osminor
Funci¢n Contiene el n£mero mayor y menor de versi¢n de DOS.
Sintaxis extern unsigned char _osmajor;
extern unsigned char _osminor;
Declarado dos.h
_psp
Funci¢n Contiene la direcci¢n del psp
Sintaxis extern unsigned int _psp;
Declarado dos.h
_stklen
Funci¢n Contiene el tama¤o de la pila.
Sintaxis extern unsigned _stklen;
Declarado dos.h
Nota: Especifica el tama¤o de pila para cualquiera de los seis
modelos de memoria. El m¡nimo tama¤o de pila es de 128
palabras.
timezone
Funci¢n Tiene la diferencia en seg. entre hora local y la
GMT
Sintaxis extern long timezone;
Declarado time.h
tzname
Funci¢n Array de punteros a nombres de zona horaria
Sintaxis extern char *tzname[2];
Declarado time.h
Nota: La variable global tzname es un array de punteros a
cadenas que contienen las abreviaturas a los nombres de
zonas horarias.
_versi¢n
Funci¢n Contiene el n£mero de versi¢n de DOS
Sintaxis extern unsigned int _versi¢n;
Declarado dos.h
LIBRERIAS DE TURBO C - alloc.h
brk()
Sintaxis: int brk(void *addr);
Declarado: alloc.h
Funci¢n: Cambia el lugar de asignaci¢n del segmento de
datos.
calloc()
Sintaxis: void *calloc(size_t n, size_t t);
Declarado: stdlib.h, alloc.h
Funci¢n: Esta funci¢n, asigna espacio de memoria para un array
de n elementos, de longitud t bytes cada uno de ellos.
coreleft()
Sintaxis: En tiny, small y medium:
unsigned coreleft(void);
En compact, large y huge:
unsigned long coreleft(void);
Declarado: alloc.h
Funci¢n: Devuelve la RAM libre.
farcalloc()
Sintaxis: void far *farcalloc(unsigned long num, unsigned
long unitsz);
Declarado: alloc.h
Funci¢n: Asigna memoria desde el far heap para un array de num
elementos de tama¤o unitsz cada uno. Esta funci¢n
devuelve un puntero al bloque asignado, o un NULL en caso
de no haber espacio.
farcoreleft()
Sintaxis: unsigned long farcoreleft(void);
Declarado: alloc.h
Funci¢n: Devuelve el tama¤o de memoria disponible en el far
heap.
farfree()
Sintaxis: void farfree(void far *bloque);
Declarado: alloc.h
Funci¢n: Libera el bloque del far heap dej ndolo disponible
para su utilizaci¢n.
farmalloc()
Sintaxis: void far *farmalloc(unsigned long nbytes);
Declarado: alloc.h
Funci¢n: Asigna un bloque del far heap de nbytes. En caso de
no poder hacerlo, devuelve NULL.
farrealloc()
Sintaxis: void far *farrealloc(void far *p, unsigned long
t);
Declarado: alloc.h
Funci¢n: Cambia el tama¤o de un bloque de memoria del far heap
previamente asignado mediante farmalloc o farcalloc. El
argumento p apunta al comienzo del bloque. t es el nuevo
tama¤o del bloque en bytes. Si no hay espacio o si t es 0
devuelve NULL.
free()
Sintaxis: void free(void *block);
Declarado: stdio.h, alloc.h
Funci¢n: Deja libre un bloque de memoria previamente asignado
con calloc, malloc o realloc.
malloc()
Sintaxis: void *malloc(size_t size);
Declarado: stdlib.h, alloc.h
Funci¢n: Reserva un bloque de memoria de tama¤o size y retorna
un puntero al comienzo de ella.
realloc()
Sintaxis: void *realloc(void *p, size_t t);
Declarado: alloc.h
Funci¢n: Cambia el tama¤o de un bloque de memoria previamente
asignado. p es un puntero que apunta al comienzo del
bloque. Si p es NULL, esta funci¢n se comporta igual que
malloc y asigna un nuevo bloque de t bytes. Si p no es
nulo, entonces a de ser un puntero devuelto por la
funci¢n malloc, calloc o por la propia realloc. El bloque
ha podido ser incluso liberado por free. El argumento t,
da el nuevo tama¤o del bloque en bytes.
sbrk()
Sintaxis: void *sbrk(int incr);
Declarado: alloc.h
Funci¢n: Cambia el espacio asignado al segmento de datos
increment ndolo en incr bytes.
LIBRERIAS DE TURBO C - assert.h
assert()
Sintaxis: void assert(int expresi¢n);
Declarado: assert.h stdio.h
Funci¢n: La macro assert() eval£a la expresi¢n que recibe como
argumento. Si el resultado es 0, escribe informaci¢n
sobre el error en el canal stderr y cancela la ejecuci¢n
del programa. De lo contrario, assert() no realiza
ninguna acci¢n.
El mensaje de error tiene la forma siguiente:
Assertion failed: fille (fichero), line (n£mero de linea)
Normalmente esta macro se utiliza para verificar que un
programa funciona correctamente, con la expresi¢n
dise¤ada de forma que es verdadera solo cuando no haya
errores.
LIBRERIAS DE TURBO C - bios.h
bioscom()
Sintaxis: int bioscom(int cmdo, char byte, int puerto);
Declarado: bios.h
Funci¢n: Esta funci¢n se utiliza para manipular un puerto
as¡ncrono de comunicaci¢n serie RS-232. El n£mero de
puerto 0 indica COM1, puerto 1 se refiere a COM2, etc. La
funci¢n emplea la interrupci¢n 0x14 del BIOS. El tipo de
operaci¢n que se lleva a cabo depende de cmodo.
ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º cmodo ³ Significado º
ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 0 ³ Inicializa puerto º
º 1 ³ Env¡a un car cter º
º 2 ³ Recibe un car cter º
º 3 ³ Devuelve el estado del puerto º
º ³ º
ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Cuando se inicializa el puerto, el argumento byte tiene
un valor que se interpreta de la siguiente forma:
ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º BITS ³ Significado º
ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 7, 6, 5 ³ baudios º
º 4, 3 ³ paridad º
º 2 ³ bits de parada (stop bits) º
º 1, 0 ³ bits de datos º
º ³ º
ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Los baudios se codifican de la forma siguiente:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º BAUDIOS ³ BITS º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 9.600 ³ 111 º
º 4.800 ³ 110 º
º 2.400 ³ 101 º
º 1.200 ³ 100 º
º 600 ³ 011 º
º 300 ³ 010 º
º 150 ³ 001 º
º 110 ³ 000 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
La paridad se codifica:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º PARIDAD ³ BITS º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º Sin paridad ³ 00 ¢ 10 º
º Impar ³ 01 º
º Par ³ 11 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
El n£mero de bits de parada (stop bits) depende del valor
del bit correspondiente:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»
º BITS DE PARADA ³ BIT º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ
º 2 bits de parada ³ = 1 º
º 1 bit de parada ³ = 0 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ
El n£mero de bits de datos se codifica:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍ»
º N§ DE BITS DA DATOS ³ BITS º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄĶ
º 7 bits ³ 10 º
º 8 bits ³ 11 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍͼ
Por ejemplo 0XDF, programa el puerto con 4800 baudios,
paridad par, 2 bits de parada y 8 bits de datos. La
secuencia de bits es:
11011111
La funci¢n bioscom() devuelve un valor de 16 bits. El
byte alto contiene los bits de estado. Estos bits tienen
el siguiente significado:
BIT SIGNIFICADO (CUANDO ACTIVADO)
0 Car cter disponible. El programa puede realizar una
lectura del puerto (cmodo = 2).
1 Tamp¢n lleno (overrun). Se ha recibido un caracter
cuando el programa a£n no hab¡a vaciado el anterior.
Se han perdido caracteres.
2 Error de paridad
3 Error de trama. (framing error). El reconocimiento
del caracter es incorrecto.
4 Error de transmisi¢n. (break detect). Error en la
l¡nea.
5 Registro de transmisi¢n vac¡o. El programa puede
enviar un car cter (cmodo = 1):
6 Registro de desplazamiento de la informaci¢n est
vacio.
7 Finalizado el tiempo concedido (time out):
Cuando el argumento cmodo vale 0, 1 o 3, el byte bajo se
codifica como se indica a continuaci¢n:
BIT SIGNIFICADO (CUANDO ACTIVADO)
0 Delta clear to send. El CTS ha cambiado de estado
desde la £ltima lectura.
1 Delta set ready. El DSR ha cambiado de estado desde
la £ltima lectura.
2 Trailing edge ring indicator. El RI ha cambiado de
estado.
3 Delta receive line signal detect. El LSD ha cambiado
de estado.
4 Clear to send. Preparado para enviar
5 Data set ready. Equipo dispuesto
6 Ring indicator. Se¤al de llamada
7 Receive line signal detected.
Cuando cmodo es igual a 2, bioscom() realiza una lectura
del puerto y devuelve el byte leido.
biosdisk()
Sintaxis: int biosdisk(int cmd, int disco, int cara, int
pista, int sector, int nsects, void *buffer);
Declarado: bios.h
Funci¢n: Utiliza la interrupci¢n 0x13 de la BIOS para
operaciones de disco. disco es el n£mero de disco
utilizado: 0 para la disquetera 1, 1 para la segunda,
etc... Para discos duros, el valor de disco ser 0x80
para el primero, 0x81 para el segundo, etc...
cmd que operaci¢n se va a efectuar
Todas las operaciones ignoran la estructura l¢gica de
ficheros y directorios. Solo emplea sectores y pistas.
biosequip()
Sintaxis: int biosequip(void);
Declarado: bios.h
Funci¢n: Devuelve un entero comunicando el equipamiento del
sistema, que bit a bit informan de la forma siguiente:
bits 14-15 N§ de impresoras en paralelo.
bit 13 impresora serie conectada. Solo PCjr
bit 12 E/S para juegos conectado, no usado en AT
bit 9-11 N§ de puertos de serie.
bit 8 0 = si DMA. 1 = no DMA
bit 6-7 N§ de discos.
bit 5-4 Modo de video inicial. 00=sin usar,
01=40x25, 10=80x25 tarjeta color, 11=80x25
tarjeta mono.
bit 2-3 RAM en bloques de 16K.
bit 1 coprocesador matem tico.
bit 0 unidad de disco.
bioskey()
Sintaxis: int bioskey(int cmdo);
Declarado: bios.h
Funci¢n: Nos proporciona varias rutinas de teclado por medio
de la interrupci¢n 0x16 de la BIOS. El par metro cmdo
determina la operaci¢n exacta, si es 0, espera a que se
pulse una tecla y devuelve un valor de 2 bytes, el byte
bajo contiene el valor ASCII de la tecla, si es 0 indica
que es una tecla de control, en este caso el byte alto
contiene un valor que indica que tecla es. Si cmdo vale 1
la funci¢n revisa si se ha pulsado alguna tecla,
devolviendo 0 si no se ha pulsado ninguna y un valor
diferente de cero en caso contrario. Si cmdo vale 2 la
funci¢n devuelve en el byte bajo un valor representando
el estado de algunas teclas. El c¢digo es el siguiente:
ÉÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º BIT ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 0 ³ Pulsada la tecla Shift derecha º
º 1 ³ Pulsada la tecla Shift izquierda º
º 2 ³ Pulsada la tecla CTRL º
º 3 ³ Pulsada la tecla Alt º
º 4 ³ SCROLL LOCK activado º
º 5 ³ NUM LOCK activado º
º 6 ³ CAPS LOCK activado º
º 7 ³ Tecla INSERT activada º
ÈÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
biodmemory()
Sintaxis: int biosmemory(void);
Declarado: bios.h
Funci¢n: Devuelve el tama¤o de memoria en K.
biosprint()
Sintaxis: int biosprint(int cmdo, int byte, int port)
Declarado: bios.h
Funci¢n: Imprime utilizando los servicios BIOS. Si el
argumento port es 0, se refiere a LPT1, si es 1 a LPT2,
etc. Los valores de cmdo indican el tipo de funci¢n a
realizar.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ARGUMENTO ³ º
º cmdo ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 0 ³ escribir byte º
º 1 ³ Inicializar el puerto º
º 2 ³ Devolver el estado del puerto º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
La funci¢n devuelve el estado del puerto codificado en el
byte bajo:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º BIT ³ SIGNIFICADO SI ACTIVADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 0 ³ Error de time-out º
º 1, 2 ³ Sin usar º
º 3 ³ Error de E/S º
º 4 ³ Impresora conectada º
º 5 ³ Impresora sin papel º
º 6 ³ acuse de recibo (ACK) º
º 7 ³ Impresora lista para recibir datos º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
biostime()
Sintaxis: long biostime(int cmd, long newtime);
Declarado: bios.h
Funci¢n: Lee o graba la hora del reloj del sistema. Si cmd es
igual a 0, devuelve la hora actual, si es igual a 1 graba
el valor almacenado en newtime. La hora tanto leida como
grabada va especificada en ticks (tick = 18,2 por
segundo) LIBRERIAS DE TURBO C - conio.h
cgets()
Sintaxis: char *cgets(char *str);
Declarado: conio.h
Funci¢n: Lee una cadena de caracteres de consola almacen ndola
en str.
clreol()
Sintaxis: void clreol(void);
Declarado: conio.h
Funci¢n: Borra desde la posici¢n actual al final de la l¡nea
de la ventana de texto.
clrscr()
Sintaxis: void clrscr(void);
Declarado: conio.h
Funci¢n: Borra toda la pantalla de texto y coloca el cursor en
la posici¢n (1, 1).
cprintf()
Sintaxis: Igual que printf
Declarado: conio.h
Funci¢n: Salidas de texto por pantalla. esta funci¢n es 50
veces m s r pida que printf soportando los atributos de
texto.
cputs()
Sintaxis: int cputs(const char *str)
Declarado: conio.h
Funci¢n: Escribe la cadena str en la posici¢n actual del
cursor respetando los colores en curso.
cscanf()
Sintaxis: int cscan(char *formato[, direcci¢n, ...]);
Declarado: conio.h
Funci¢n: Coge entradas formateadas desde consola.
delline()
Sintaxis: void delline(void);
Declarado: conio.h
Funci¢n: Borra la l¡nea de la ventana de texto en la que
actualmente se encuentra el cursor.
getch()
Sintaxis: int getch(void);
Declarado: conio.h
Funci¢n: Lee un car cter desde el teclado sin visualizarlo.
getche()
Sintaxis: int getche(void);
Declarado: conio.h
Funci¢n: Lee un car cter desde teclado mandando eco a
pantalla.
getpass()
Sintaxis: char *getpass(const char *prompt);
Declarado: conio.h
Funci¢n: Lee un password desde la consola sin hacer eco.
gettext()
Sintaxis: int gettext(int izda, int sup, int dcha, int
abaj, void *destin);
Declarado: conio.h
Funci¢n: Copia de la pantalla de texto, el texto comprendido
entre las coordenadas dadas y lo graba en destin.
gettextinfo()
Sintaxis: void gettextinfo(struct text_info *r);
Declarado: conio.h
Funci¢n: Carga en la estructura r de tipo text_info,
informaci¢n en torno al modo texto actual. La estructura
es como sigue:
struct text_info {
unsigned char winleft; /* coord. izda de ventana*/
unsigned char wintop; /* " supe " " */
unsigned char winright; /* coord. dcha de ventana*/
unsigned char winbottom; /* " supe " " */
unsigned char attribute; /* atributo del texto */
unsigned char nomattr; /* atributo normal */
unsigned char currmode; /* BW40, BW80, C40 o C80 */
unsigned char screenheight; /* abajo - arriba */
unsigned char screenwidth; /* dcha - izda */
unsigned char curx; /* coord. x en la ventana actual */
unsigned char cury; /* " y " " " " */
};
gotoxy()
Sintaxis: void goto(int x, int y);
Declarado: conio.h
Funci¢n: Mueve el cursor a la posici¢n especificada por (x, y)
de la actual ventana de texto. La esquina superior izda
es la (1, 1).
highvideo()
Sintaxis: void highvideo(void);
Declarado: conio.h
Funci¢n: Aumenta la intensidad del texto que salga por
pantalla a partir de llamar a la funci¢n.
insline()
Sintaxis: void insline(void);
Declarado: conio.h
Funci¢n: Inserta una l¡nea en blanco en la posici¢n actual del
cursor en la ventana de texto.
kbhit()
Sintaxis: int kbhit(void);
Declarado: conio.h
Funci¢n: Chequea el teclado buscando el car cter
correspondiente a la tecla m s recientemente pulsada.
Esta funci¢n devuelve un valor distinto de 0 si se ha
pulsado una tecla, sino devuelve un 0.
lowvideo()
Sintaxis: void lowvideo(void);
Declarado: conio.h
Funci¢n: Hace que la siguiente salida en pantalla sea en baja
intensidad.
movetext()
Sintaxis: int movetext(int izda, int sup, int dcha, int
inf, int nuevaizda, int nuevoinf);
Declarado: conio.h
Funci¢n: Mueve el texto incluido entre izda, sup, dcha, inf
coloc ndolo en otra parte de la pantalla cuyo v‚rtice inferior
izquierdo viene dado por nuevaizda, nuevoinf.
normvideo()
Sintaxis: void normvideo(void);
Declarado: conio.h
Funci¢n: Pone el atributo de texto en modo normal.
putch()
Sintaxis: int putch(int c);
Declarado: conio.h
Funci¢n: Escribe el car cter c en pantalla
putchar()
Sintaxis: int putchar(int c);
Declarado: conio.h
Funci¢n: Escribe el car cter c en stdout.
puttext()
Sintaxis: int puttext(int izda, int sup, int dcha, int
abajo, void *fuente);
Declarado: conio.h
Funci¢n: Recupera un texto que est en memoria en el rea
apuntado por fuente sac ndolo en pantalla en las
coordenadas izda, sup, dcha, abajo.
textattr()
Sintaxis: void textattr(int nueatri);
Declarado: conio.h
Funci¢n: Establece el atributo de texto. nueatri es un valor
en el cual los bits 0 al 2 especifican el color del
primer plano, el bit 3 especifica la intensidad, los bits
4 al 6 especifican el fondo y el bit 7 especifica el modo
de parpadeo de la forma siguiente:
ÚÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄ¿
³ ³ ³ ³ ³ ³ ³ ³ ³
³ ³ R ³ G ³ B ³ ³ R ³ G ³ B ³
ÀÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÙ
bits 7 6 5 4 3 2 1 0
Si bit 7 = 0 entonces normal, si 1 entonces parpadeo.
Si bit 3 = 0 entonces normal, si 1 entonces brillante.
Colores de primer plano y de fondo:
000 = negro
001 = azul
010 = verde
011 = cian
100 = rojo
101 = magenta
110 = marr¢n
111 = blanco
textbackground()
Sintaxis: void textbackground(int nuecolor);
Declarado: conio.h
Funci¢n: Establece el color de fondo de texto mostrado a
trav‚s de cprintf, cputs y putch. Con esta funci¢n se
puede utilizar cualquiera de los colores de baja
intensidad pero no los de alta intensidad o el parpadeo,
los colores disponibles son:
0 = BLACK
1 = BLUE
2 = GREEN
3 = CYAN
4 = RED
5 = MAGENTA
6 = BROWN
7 = LIGTGRAY
textcolor()
Sintaxis: void textcolor(int nuecolor);
Declarado: conio.h
Funci¢n: Establece el color del primer plano o los bits del
primer plano del byte atributo de pantalla. El argumento
nuecolor puede ser un valor num‚rico o una constante
simb¢lica como sigue:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Baja intensidad ³ Alta intensidad º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 0 = BLACK ³ 8 = DARKGRAY º
º 1 = BLUE ³ 9 = LIGHTBLUE º
º 2 = GREEN ³ 10 = LIGHTGREEN º
º 3 = CYAN ³ 11 = LIGHTCYAN º
º 4 = RED ³ 12 = LIGHTRED º
º 5 = MAGENTA ³ 13 = LIGHTMAGENTA º
º 6 = BROWN ³ 14 = YELLOW º
º 7 = LIGTGRAY ³ 15 = WHITE º
º ³ 128 = BLINK º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
textmode()
Sintaxis: void textmode(int nuevomodo);
Declarado: conio.h
Funci¢n: Pone la pantalla en modo de texto. el par metro
nuevomodo puede ser:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º LASTMODE ³ -1 ³ Modo de texto anterior º
º BW40 ³ 0 ³ Blanco y negro 40 columnasº
º C40 ³ 1 ³ Color, 40 columnas º
º BW80 ³ 2 ³ Blanco y negro 80 columnasº
º C80 ³ 3 ³ Color, 80 columnas º
º MONO ³ 7 ³ Monocromo, 80 columnas º
º ³ ³ º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ungetch()
Sintaxis: int ungetch(int ch);
Declarado: conio.h
Funci¢n: Devuelve a la memoria intermedia de la consola, el
£ltimo car cter le¡do, haciendo que este car cter sea el
pr¢ximo car cter a leer.
Devuelve el car cter ch si existe. Si el valor devuelto
es EOF, es que ha ocurrido un error.
wherex()
Sintaxis: int wherex(void);
Declarado: conio.h
Funci¢n: Devuelve en un valor entero la posici¢n horizontal
actual del cursor.
wherey()
Sintaxis: int wherey(void);
Declarado: conio.h
Funci¢n: Devuelve en un valor entero la posici¢n vertical
actual del cursor.
window()
Sintaxis: void window(int izda, int sup, int dcha, int
inf);
Declarado: conio.h
Funci¢n: Define una ventana de texto donde los cuatro
argumentos especifican los l¡mites de la fila y columna
del rect ngulo de la ventana de la pantalla de texto. Una
vez que se ha especificado una ventana de texto mediante
window, las funciones de manipulaci¢n de texto (para
mostrar en pantalla, mover en pantalla, borrar o insertar
texto, etc.) usan £nicamente la ventana y no toda la
pantalla.
LIBRERIAS DE TURBO C - ctype.h
isalnum()
Sintaxis: int isalnum(int c);
Declarado: ctype.h
Funci¢n: Mira si c es un car cter 'A -Z', 'a - z' o '1 - 9',
devolviendo un 0 en caso contrario.
isalpha()
Sintaxis: int isalpha(int c);
Declarado: ctype.h
Funci¢n: Mira si c es un car cter 'A -Z', 'a - z', devolviendo
un 0 en caso contrario.
isascii()
Sintaxis: int isascii(int c);
Declarado: ctype.h
Funci¢n: Mira si c es un car cter comprendido entre 0 y 127,
devolviendo un 0 en caso contrario.
iscntrl()
Sintaxis: int iscntrl(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es un car cter de control (0 - 31 y
127) devolviendo un 0 en caso contrario.
isdigit()
Sintaxis: int isdigit(int c);
Declarado: ctype.h
Funci¢n: Mira si c es un d¡gito '1 - 9', devolviendo un 0 en
caso contrario.
isgraph()
Sintaxis: int isgraph(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es un car cter escribible, exceptuando
el espacio (33 - 126), devolviendo un 0 en caso
contrario.
islower()
Sintaxis: int islower(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es una letra min£scula, devolviendo un
0 en caso contrario.
isprint()
Sintaxis: int isprint(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es un car cter escribible (32 - 126),
devolviendo un 0 en caso contrario.
ispunct()
Sintaxis: int ispunct(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es un car cter de puntuaci¢n,
devolviendo un 0 en caso contrario.
isspace()
Sintaxis: int isspace(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es un car cter espacio en blanco (9 -
13 o 32), devolviendo un 0 en caso contrario.
isupper()
Sintaxis: int isupper(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es una letra may£scula, devolviendo un
0 en caso contrario.
isxdigit()
Sintaxis: int isxdigit(int c);
Declarado: ctype.h
Funci¢n: Comprueba si c es un d¡gito hexadecimal, devolviendo
un 0 en caso contrario.
toascii()
Sintaxis: int toascii(int c);
Declarado: ctype.h
Funci¢n: Pone todos los bits de c excepto los 7 bits de menor
orden a 0. Esto es convierte c en un car cter ASCII.
_tolower()
Sintaxis: int _tolower(int c);
Declarado: ctype.h
Funci¢n: Es una macro que convierte c en min£scula si es
may£scula.
tolower()
Sintaxis: int _tolower(int c);
Declarado: ctype.h
Funci¢n: Es una funci¢n que convierte c en min£scula si es
may£scula.
_toupper()
Sintaxis: int _toupper(int c);
Declarado: ctype.h
Funci¢n: Es una macro que convierte c en may£scula si es
min£scula.
toupper()
Sintaxis: int _toupper(int c);
Declarado: ctype.h
Funci¢n: Es una funci¢n que convierte c en may£scula si es
min£scula.
LIBRERIAS DE TURBO C - dir.h
chdir()
Sintaxis: int chdir(const char *path);
Declarado: dir.h
Funci¢n: Cambia de directorio al especificado por path. Si
todo va bien, esta funci¢n devuelve 0, en caso contrario
devuelve -1.
findfirst()
Sintaxis: #include
#include
int findfirst(const char *path, struct ffblk
*ffblk, int atri);
Declarado: dir.h
Funci¢n: Busca en un directorio del disco. path es una cadena
opcional que indica el disco y directorio y ficheros,
pudiendo incluir comodines. Si los ficheros son
encontrados, la estructura ffblk es rellenada con la
informaci¢n correspondiente. La estructura ffblk es como
sigue:
struct ffblk {
char ff_reserved[2]; /* reservado para el DOS */
char ff_attrib; /* atributo */
char ff_time; /* hora del fichero */
char ff_date; /* fecha del fichero */
char ff_fsize; /* tama¤o fichero */
char ff_name[13] /* nombre del fichero */
};
atrib es un atributo del DOS, y puede ser uno de los
siguientes que est n declarados en dos.h:
FA_RDONLY archivo solo lectura.
FA_HIDDEN " oculto
FA_SYSTEM " sistema
FA_LABEL etiqueta de volumen
FA_DIREC directorio
FA_ARCH archivo
findnext()
Sintaxis: int findnext(struct ffblk *ffblk);
Declarado: dir.h
Funci¢n: Continua la b£squeda de findfirst. Esta funci¢n y la
anterior devuelven 0 si no hay errores, de lo contrario
devuelven -1. En este £ltimo caso, se asigna a errno el
valor ENOENT (nombre de fichero no encontrado) 0 ENMFILE
(no hay m s ficheros en el directorio).
fnmerge()
Sintaxis: void fnmerge(char *path, char *disco, char
*dir, char *nombre, char *ext);
Declarado: dir.h
Funci¢n: Forma el nombre de un fichero desde sus componentes.
El nuevo path ser :
X:\DIR\SUBDIR\NOMBRE.EXT
Donde
disco = X:
dir = \DIR\SUBDIR\
nombre= NOMBRE
ext = .EXT
fnsplit()
Sintaxis: int fnsplit(char *path, char *disco, char *dir,
char *nombre, char *ext);
Declarado: dir.h
Funci¢n: Separa el nombre de un fichero (path) en sus
componentes (disco, dir, nombre, ext). Esta funci¢n hace
justo lo contrario que la anterior.
getcurdir()
Sintaxis: int getcurdir(int *drive, char *directorio);
Declarado: dir.h
Funci¢n: Carga el nombre del directorio actual de trabajo en
directorio y el disco en drive. Devuelve -1 en caso de
error y 0 en otro caso.
getcwd()
Sintaxis: char *getcwd(char *path, int buflen);
Declarado: dir.h
Funci¢n: Obtiene el nombre del directorio actual de trabajo.
Copia el nombre de la v¡a de acceso del directorio actual
(incluyendo la unidad de disco) dentro de la cadena path,
buflen indica el n£mero m ximo de caracteres que el
programa permite en el nombre de la v¡a de acceso.
getdisk()
Sintaxis: int getdisk(void);
Declarado: dir.h
Funci¢n: Devuelve el n£mero del disco actual (0=A, 1=B, etc)
mkdir()
Sintaxis: int mkdir(const char *path);
Declarado: dir.h
Funci¢n: Crea el directorio especificado en path, retornando
0, en caso de error devuelve -1.
mktemp()
Sintaxis: char *mktemp(char *fnombre);
Declarado: dir.h
Funci¢n: Genera un nombre de fichero que no existe y lo copia
en la cadena se¤alada por fnombre. Cuando se llama a
mktemp(), la cadena se¤alada por fnombre debe contener el
caracter X repetido seis veces, y al final el caracter
nulo. La funci¢n mktemp() transforma esta cadena un un
£nico nombre de fichero. Sin embargo no crea el fichero.
En caso de ‚xito, devuelve un puntero a fnombre, en caso
contrario devuelve un nulo.
rmdir()
Sintaxis: int rmdir(char *path);
Declarado: dir.h
Funci¢n: Borra el directorio indicado en path. Funciona igual
que la instrucci¢n an loga del DOS. En caso de error
devuelve -1, y si la operaci¢n es correcta 0.
searchpath()
Sintaxis: char *searchpath(char *fichero);
Declarado: dir.h
Funci¢n: Intenta localizar fichero buscando por los
subdirectorios indicados en la orden del dos PATH:. Esta
funci¢n devuelve un puntero a la cadena del nombre de
fichero si este es encontrado o un NULL en caso
contrario.
setdisk()
Sintaxis: int setdisk(int drive);
Declarado: dir.h
Funci¢n: Selecciona el disco actual con el valor dado por
drive: 0 para A, 1 para B, 2 para C, etc...
Esta funci¢n devuelve el numero total de discos
disponibles.
LIBRERIAS DE TURBO C - dos.h
absread()
Sintaxis: int absread(int d, int ns, int ls, void
*buffer);
Declarado: dos.h
Funci¢n: Lee sectores espec¡ficos de disco. Ignora la
estructura l¢gica del disco no prestando atenci¢n a
ficheros, FATs o directorios. La lectura la hace v¡a
interrupci¢n Ox25.
d = N£mero de disco a leer (0=A, 1=B, etc.)
ns = N£mero de sectores a leer.
ls = N£mero de sector l¢gico de comienzo.
buffer = Direcci¢n de memoria donde se almacenan
los datos le¡dos
Si no hay error esta funci¢n devuelve 0, en caso
contrario devuelve -1 y coloca en errno el valor del
registro AX.
abswrite()
Sintaxis: int abswrite(int d, int ns, int ls, void
*buffer);
Declarado: dos.h
Funci¢n: Esta funci¢n es id‚ntica a la anterior hasta en los
valores que devuelve, solo que en lugar de leer del
disco, escribe en ‚l.
allocmem()
Sintaxis: int allocmem(unsigned tama¤o, unsigned *seg);
Declarado: dos.h
Funci¢n: Realiza una llamada al DOS con la interrupci¢n 0x48
para reservar un bloque de memoria. El bloque se ajusta
por p rrafos de 16 byts. La funci¢n asigna la direcci¢n
del segmento donde est el bloque en el entero apuntado
por seg. El argumento tama¤o especifica el n£mero de
p rrafos que se asignan.
Si se puede asignar la memoria solicitada, la funci¢n
devuelve un -1. Si no hay suficiente memoria libre, no se
asigna ningun valor a la variable apunatada por seg, y la
funci¢n devuelve el tama¤o del mayor bloque libre.
bdos()
Sintaxis: int bdos(int dosfun, unsigned dosdx, unsigned
dosal)
Declarado: dos.h
Funci¢n: Esta funci¢n llama al DOS para ejecutar la rutina
especificada por dosfun, despu‚s de copiar los valores
dosdx y dosal en los registros DX y AL. Para efectuar la
llamada esta funci¢n ejecuta la instrucci¢n INT 21H.
bdosptr()
Sintaxis: int bdosptr(int dosfun, void *argument,
unsigned dosal);
Declarado: dos.h
Funci¢n: Esta funci¢n permite acceso a diversas rutinas del
DOS, estas rutinas del sistema requieren un puntero a un
argumento utilizado. dosfun en el Manual de Referencia
del DOS.
En el modelo small el par metro argument ir en DX, en
los modelos largos ir en DS:DX.
En caso exitoso la funci¢n devolver un valor en AX. En
caso de error devolver -1.
country()
Sintaxis: struct country *country(int c¢digo, struct
country *ptr);
Declarado: dos.h
Funci¢n: Asigna valores a ciertos par metros concernientes a
un pa¡s. Devuelve un puntero a la estructura country que
se pasa como argumento. La estructura contiene la
siguiente informaci¢n:
struct country {
int co_date; /* formato de fecha */
char co_curr[5]; /* s¡mbolo de la moneda */
char co_thsep[2]; /* separador de miles */
char co_desep[2]; /* separador de decimales */
char co_dtsep[2]; /* separador de fecha */
char co_tmsep[2]; /* separador de hora */
char co_currstyle; /* formato de moneda */
char co_digits; /* d¡gitos significativos en
moneda */
int(far *co_case)() /* funci¢n de casos */
char co_dasep; /* separador de datos */
char co_fill[10]; /* relleno */
};
Si el argumento c¢digo contiene un 0, se asigna la
informaci¢n concerniente al pais en la estructura
apuntada por ptr. Si c¢digo contiene un valor diferente a
0, la informaci¢n de la estructura apuntada por ptr se
convierte en la nueva informaci¢n del pa¡s. El campo
co_date indica el formato de la fecha. En EE.UU. se
emplea el formato (mes,d¡a,a¤o), asignando a co_date el
valor 0. Si co_date contiene un 1, la fecha aparecer con
formato europeo: (dia,mes,a¤o). Si contiene un 2, aparece
como (a¤o,mes,d¡a). La forma como aparecen los caracteres
de moneda se indican con el campo co_currstyle. Puede
tener los siguientes valores:
ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º VALOR ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 0 ³ el s¡mbolo precede al valor º
º 1 ³ el s¡mbolo va a continuaci¢n del valor º
º 2 ³ precede a valor con espacio de separaci¢nº
º 3 ³ despues de valor con espacio de separaci¢º
ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ctrlbrk()
Sintaxis: void ctrlbrk(int (*funci¢n)(void));
Declarado: dos.h
Funci¢n: Cuando se pulsa Ctrl+Break se ejecutar funci¢n.
Esta funci¢n interviene la interrupci¢n 0x23 desviando su
llamada a funci¢n. Cuando el programa termina Turbo C
devuelve el handler original del DOS.
delay()
Sintaxis: void delay(unsigned milisegundos);
Declarado: dos.h
Funci¢n: Esta funci¢n suspende la ejecuci¢n del programa
durante el intervalo especificado en milisegundos.
disable()
Sintaxis: void disable(void);
Declarado: dos.h
Funci¢n: Desautoriza las interrupciones, a excepci¢n de las no
enmascarables (NMI).
dosexterr()
Sintaxis: int dosexterr(atruct DOSERROR *eblkp);
Declarado: dos.h
Funci¢n: Esta funci¢n llena la estructura DOSERROR apuntada
por eblkp con informaci¢n en torno al error producido
despu‚s la utilizaci¢n de la £ltima funci¢n del DOS. La
estructura es de la forma siguiente:
struct DOSERROR {
int exterror; /* c¢digo de error */
char class; /* tipo de error */
char action; /* acci¢n recomendada */
char locus; /* lugar donde ocurri¢ el error
};
Esta funci¢n retorna el valor de exterror.
dostounix()
Sintaxis: long dostounix(struct date *d, struct time *t);
Declarado: dos.h
Funci¢n: Devuelve la fecha y hora dada por getdate y gettime
en formato UNIX. d apunta a una estructura de tipo date y
t a una de tipo time conteniendo informaci¢n en torno a
una fecha y hora v lida de DOS. El formato ANSI de la
fecha es el mismo que el de UNIX.
__emit__()
Sintaxis: void __emit__(argumento, ...);
Declarado: dos.h
Funci¢n: Inserta valores literales en el c¢digo objeto. Es
utilizado para introducir c¢digo m quina.
enable()
Sintaxis: void enable(void);
Declarado: dos.h
Funci¢n: Habilita las interrupciones de hardware.
FP_OFF()
Sintaxis: unsigned FP_OFF(puntfar);
Declarado: dos.h
Funci¢n: FP_OFF es una macro que se utiliza para obtener el
desplazamiento del puntero far puntfar.
FP_SEG()
Sintaxis: unsigned FP_SEG(puntfar);
Declarado: dos.h
Funci¢n: Es una macro que devuelve el segmento del puntero far
puntfar.
freemem()
Sintaxis: int freemem(unsigned segx);
Declarado: dos.h
Funci¢n: Libera un bloque de memoria previamente asignado con
allocmem. segx es la direcci¢n del segmento del bloque.
geninterrupt()
Sintaxis: void geninterrupt(int intr_num);
Declarado: dos.h
Funci¢n: Llama a la interrupci¢n intr_num. El estado de los
registros despu‚s de la llamada dependen de la
interrupci¢n.
getcbrk()
Sintaxis: int getcbrk(void);
Declarado: dos.h
Funci¢n: Indica el tipo de revisi¢n de la secuencia CTRL+BRK.
Devuelve 0 si el control es s¢lo en la Entrada/Salida y 1
si es en cada llamada a una funci¢n del DOS.
Este par metro se puede definir en la l¡nea de ordenes
del DOS, con la opci¢n BREAK.
getdate()
Sintaxis: void getdate(struct date *datep);
Declarado: dos.h
Funci¢n: Rellena la estructura de tipo date apuntada por datep
con el actual sistema de fecha.
El tipo de estructura date es como sigue:
struct date {
int da_year; /* a¤o actual */
char da_day; /* d¡a del mes */
char da_mon; /* mes (1= Enero) */
getdfree()
Sintaxis: void getdfree(unsigned char disco, struct dfree
*dtable);
Declarado: dos.h
Funci¢n: Chequea el disco indicado en disco (0=actual, 1=A,
etc..) rellenando la estructura dtable de tipo dfree, que
es como sigue:
struct dfree {
unsigned df_avail; /* clusters libres */
unsigned df_total; /* total clusters */
unsigned df_bsec; /* bytes por sector */
unsigned df_sclus; /* sectores por cluster */
};
getdta()
Sintaxis: char *far getdta(void);
Declarado: dos.h
Funci¢n: Devuelve la un puntero far al DTA del disco (disk
transfer address).
getfat()
Sintaxis: void getfat(unsigned char disco, struct fatinfo
*dtabla);
Declarado: dos.h
Funci¢n: Carga informaci¢n de la FAT del disco especificado
(0=actual, 1=A, etc) en la estructura dtabla de tipo
fatinfo que es del siguiente formato:
struct fatinfo {
char fi_sclus; /* sectores por cluster */
char fi_fatid; /* FAT en bytes */
int fi_nclus; /* n£mero de clusters */
int fi_bysec; /* bytes por sector */
};
getfatd()
Sintaxis: void getfatd(struct fatinfo *dtabla);
Declarado: dos.h
Funci¢n: Esta funci¢n es identica a la anterior solo se
diferencia en que la estructura es rellenada con el disco
actual.
getpsp()
Sintaxis: unsigned getpsp(void);
Declarado: dos.h
Funci¢n: Devuelve la direcci¢n del PSP (Prefijo del Segmento
de Programa).
gettime()
Sintaxis: void gettime(struct time *timep);
Declarado: dos.h
Funci¢n: Carga en la estructura timep de tipo time informaci¢n
en torno a la hora actual. La estructura es como sigue:
struct time {
unsigned char ti_min; /* minutos */
unsigned char ti_hour; /* horas */
unsigned char ti_hund; /* cent‚s. de seg. */
unsigned char ti_sec; /* segundos */
};
getvect()
Sintaxis: void interrupt(*getvect(int interrupno))();
Declarado: dos.h
Funci¢n: La funci¢n getvect lee el valor del vector de
interrupci¢n dado por interrupno y devuelve un puntero
far a la interrupci¢n.
getverify()
Sintaxis: int getverify(void);
Declarado: dos.h
Funci¢n: Devuelve el estado actual de verificaci¢n de flags 0
para off y 1 para on.
harderr()
Sintaxis: void harderr(int (*handler)());
Declarado: dos.h
Funci¢n: Reemplaza el handler de errores del DOS por uno
definido por el programador. El argumento es la nueva
funci¢n que se invocar cada vez que se produzca una
interrupci¢n 0x24. Esta funci¢n debe tener el siguiente
prototipo:
funci¢n(int errno, int ax, int bp, int si);
donde:
errno Es el c¢digo de errores del DOS.
ax,bp,si Contienen los valores de los registros de su
mismo nombre.
Si ax es mayor o igual que cero, indica un error de
disco. Si esto ocurre, se puede realizar la operaci¢n AND
con ax y 0xFF para conocer que disco di¢ el error. El
resultado ser 1 para A:, 2 para B:, etc.
Si ax es negativo, indica un error fatal de dispositivo.
Se debe consultar el manual de errores del DOS.
Hay que tener en cuenta que la rutina de interrupci¢n no
puede emplear funciones de E/S de la librer¡a, pues esta
no es reentrante, y solo se puede utilizar ciertas
llamadas al DOS, las n£meros 1 al 12.
La rutina de interrupci¢n termina con una llamada a la
funci¢n hardresume(), o a hardretn(), devolviendo un
c¢digo. Este c¢digo ser 0 para ignorar, 1 para repetir y
2 para abortar el proceso que gener¢ el error
hardresume()
Sintaxis: void hardresume(int axret);
Declarado: dos.h
Funci¢n: El indicador de error establecido por harderr puede
llamar a hardresume para volver al DOS.
hardretn()
Sintaxis: void hardretn(int retn);
Declarado: dos.h
Funci¢n: El indicador de error establecido con por harderr
puede ser devuelto directamente al programa llamando a
hardretn.
inport()
Sintaxis: int inport(int portid);
Declarado: dos.h
Funci¢n: Lee una palabra del puerto especificado por portid.
inportb()
Sintaxis: int inportb(int portid);
Declarado: dos.h
Funci¢n: Lee un byte del puerto especificado por portid.
int86()
Sintaxis: int int86(int n_int, union REGS *in_regs, union
REGS *out_regs);
Declarado: dos.h
Funci¢n: Es utilizada para llamar directamente a la
interrupci¢n n_int del DOS, para ello primero copia el
contenido de in_regs en los registros correspondientes, y
despu‚s de ejecutarse la interrupci¢n, copia los
registros en out_regs.
No utilizar esta funci¢n para interrupciones que
modifiquen el registro DS, en su lugar utilizar int86x o
intdosx.
int86x()
Sintaxis: int int86(int n_int, union REGS *in_regs, union
REGS *out_regs, struct SREGS *regs_seg);
Declarado: dos.h
Funci¢n: Ejecuta la interrupci¢n especificada por n_int, para
ello primero copia el contenido de in_regs y de regs_seg
en los registros correspondientes solo, de regs_seg son
utilizados los valores de los registros DS y ES , y
despu‚s de ejecutarse la interrupci¢n, copia los
registros en out_regs y los valores actuales de DS y ES,
restaurando DS. Esta funci¢n devuelve el contenido del
registro AX.
intdos()
Sintaxis: int intdos(union REGS *in_regs, union REGS
*out_regs);
Declarado: dos.h
Funci¢n: Llama a la rutina del DOS especificada por los
valores de los registros de in_regs. Para efectuar la
llamada, esta funci¢n ejecuta la instrucci¢n INT 21.
intdosx()
Sintaxis: int intdos(union REGS *in_regs, union REGS
*out_regs, struct SREGS *regs_seg);
Declarado: dos.h
Funci¢n: Llama a la rutina del DOS especificada por los
valores de los registros de in_regs. Para efectuar la
llamada, esta funci¢n ejecuta la instrucci¢n INT 21.
Antes de ejecutarse la interrupci¢n, esta funci¢n copia
el contenido de in_regs y de regs_seg en los registros
correspondientes.
intr()
Sintaxis: void intr(int intno, struct REGPACK *preg);
Declarado: dos.h
Funci¢n: Esta funci¢n es un interface alternativo para
ejecutar software de interrupciones, llamando a la
interrupci¢n intno. preg es la direcci¢n de una
estructura que contiene:
a) Los registros antes de la llamada.
b) El valor de los registros despu‚s de la llamada.
La estructura REGPACK es como sigue:
struct REGPACK {
unsigned r_ax, r_bx, r_cx, r_dx;
unsigned r_bp, r_si, r_di, r_ds, r_es, r_flags;
};
keep()
Sintaxis: void keep(unsigned char estado, unsigned size);
Declarado: dos.h
Funci¢n: Sale al DOS y queda residente, poniendo el estado de
salida en estado. El tama¤o del programa (size) se pone
en p rrafos. El estado se interpreta desde el DOS, o
desde el proceso que invoc¢ el programa. El DOS reserva
el espacio solicitado comenzando a partir de la direcci¢n
del PSP.
MK_FP()
Sintaxis: void far *MK_FP(unsigned seg, unsigned ofs);
Declarado: dos.h
Funci¢n: Es un macro que devuelve un puntero far mediante los
valores seg y ofs.
nosound()
Sintaxis: void nosound(void);
Declarado: dos.h
Funci¢n: Pone el altavoz del PC en off.
outport()
Sintaxis: void outport(int portid, int valor);
Declarado: dos.h
Funci¢n: Manda la palabra valor por el puerto identificado por
portid.
outportb()
Sintaxis: void outportb(int portid, unsigned char valor);
Declarado: dos.h
Funci¢n: Manda el byte valor por el puerto identificado por
portid.
parsfnm()
Sintaxis: char *parsfnm(char *nombref, struct fcb
*fcbptr, int opcion);
Declarado: dos.h
Funci¢n: Convierte un nombre de fichero en forma de cadena de
caracteres al formato requerido por el bloque de control
de ficheros (FCB). Una vez convertido, lo almacena en la
estructura fcb apuntada por el argumento fcbptr.
Esta funci¢n se emplea para asignar un valor al registro
AL antes de la llamada.
La funci¢n devuelve un puntero al siguiente byte despu‚s
del nombre del fichero. Si hay errores, devuelve un
puntero nulo.
La estructura fcb tiene la siguiente forma:
struct fcb {
char fcb_drive; 0= por defecto, 1=A, 2=B, etc
char fcb_name[8]; Nombre del fichero
char fcb_ext[3]; Extensi¢n del fichero
short fcb_curblk; N§ de bloque en curso
short fcb_recsize; Tama¤o de registro l¢gico
long fcb_filsize; Tama¤o del fichero;
short fcb_date; Fecha de £ltima escritura
char fcb_resv[10]; Reservado para DOS
char fcb_currec; Registro en curso
long fcb_random; N§ de registro aleatorio
};
peek()
Sintaxis: int peek(unsigned segment, unsigned despl);
Declarado: dos.h
Funci¢n: Devuelve la palabra cuya localizaci¢n en memoria es
segment:despl.
peekb()
Sintaxis: int peekb(unsigned segment, unsigned despl);
Declarado: dos.h
Funci¢n: Devuelve byte cuya localizaci¢n en memoria es
segment:despl.
poke()
Sintaxis: void poke(unsigned segment, unsigned despl, int
valor);
Declarado: dos.h
Funci¢n: Almacena el entero valor en la localizaci¢n de
memoria segment:despl.
pokeb()
Sintaxis: void poke(unsigned segment, unsigned despl,
char valor);
Declarado: dos.h
Funci¢n: Almacena el byte valor en la localizaci¢n de memoria
segment:despl.
randbrd()
Sintaxis: int randbrd(struct fcb *fcbptr, int n);
Declarado: dos.h
Funci¢n: Lee n registros desde el DTA (Direcci¢n de
transferencia de datos del disco). Los registros leidos
se almacenan en las estructuras de tipo fcb, apuntadas
por el argumento fcbptr. La estructura fcb tiene la
siguiente forma:
struct fcb {
char fcb_drive; 0= por defecto, 1=A, 2=B, etc
char fcb_name[8]; Nombre del fichero
char fcb_ext[3]; Extensi¢n del fichero
short fcb_curblk; N§ de bloque en curso
short fcb_recsize; Tama¤o de registro l¢gico
long fcb_filsize; Tama¤o del fichero;
short fcb_date; Fecha de £ltima escritura
char fcb_resv[10]; Reservado para DOS
char fcb_currec; Registro en curso
long fcb_random; N§ de registro aleatorio
};
La funci¢n randbrd() emplea la funci¢n 0x27 del DOS para
leer los registros.
Puede devolver los valores siguientes:
0 No hubo errores.
1 Encontrado un EOF pero el £ltimo registro est
completo.
2 Demasiados registros.
3 Encontrado EOF y el £ltimo registro est incompleto
randbwr()
Sintaxis: int randbwr(struct fcb *fcbptr, int n);
Declarado: dos.h
Funci¢n: Es similar a la funci¢n anterior. Emplea la funci¢n
0x28 del DOS para escribir los registros de tipo fcb
apuntados por fcbptr
segread()
Sintaxis: void segread(struct SREGS *regs_reg);
Declarado: dos.h
Funci¢n: Copia en una estructura de tipo SREGS apuntada por
regs_seg, el contenido de los registros de segmento. La
estructura es como sigue:
struct SREGS {
unsigned int es;
unsigned int cs;
unsigned int ss;
unsigned int ds;
};
setblock()
Sintaxis: int setblock(unsigned segx, unsigned tama¤o);
Declarado: dos.h
Funci¢n: Modifica el tama¤o de un bloque previamente asignado
mediante allocmmem. El bloque es segx, y el nuevo tama¤o
es tama¤o.
setcbrk()
Sintaxis: int setcbrk(int valor);
Declarado: dos.h
Funci¢n: Activa o desactiva la funci¢n de Ctrl+Break. Si valor
es 0 lo pone en off, si es 1 en on.
setdate()
Sintaxis: void setdate(struct date *fecha);
Declarado: dos.h
Funci¢n: Carga la fecha del DOS en la estructura de tipo date
fecha. La estructura es como sigue:
struct date {
int da_year;
char da_day;
char da_mon;
};
setdta()
Sintaxis: void setdta(char far *dta);
Declarado: dos.h
Funci¢n: Cambia la actual selecci¢n del disco del DOS
trasfiri‚ndolo a la direcci¢n (DTA) del valor dado por
dta.
settime()
Sintaxis: void settime(struct time *timep);
Declarado: dos.h
Funci¢n: Selecciona la hora del sistema en la estructura timep
de tipo time, que es como sigue:
struct time {
unsigned char ti_min;
unsigned char ti_hour;
unsigned char ti_hund; /*cent‚simas de seg*/
unsigned char ti_sec;
};
setvect()
Sintaxis: void setvect(int inter, void interrupt
(*isr)());
Declarado: dos.h
Funci¢n: Almacena la direcci¢n de la rutina de interrupci¢n
isr en la tabla de vectores de interrupci¢n. La posici¢n
viene indicada por intr
setverify()
Sintaxis: void setverify(int valor);
Declarado: dos.h
Funci¢n: Selecciona la verificaci¢n de escritura en disco. Si
valor = 0, la verificaci¢n est en off, si valor = 1 est
en on.
sleep()
Sintaxis: void sleep(unsigned segundos);
Declarado: dos.h
Funci¢n: Suspende la ejecuci¢n durante un intervalo de
segundos especificado en segundos.
sound()
Sintaxis: void sound(unsigned frecuencia);
Declarado: dos.h
Funci¢n: Pone el altavoz sonando. frecuencia es un valor
entero perteneciente a un tono (frecuencia) en hercios.
El tono empieza cuando el programa llama a sound,
contin£a mientras la CPU ejecuta otro c¢digo y termina
solo cuando el programa llama a nosound.
unixtodos()
Sintaxis: void unixtodos(long time, struct date *d,
struct time *t);
Declarado: dos.h
Funci¢n: Convierte el formato UNIX dado en time en formato DOS
y llena las estructuras de tipo date y time apuntadas por
d y t.
unlink()
Sintaxis: int unlink(const char *path);
Declarado: dos.h, io.h, stdio.h
Funci¢n: Borra el fichero especificado por path devolviendo 0.
un valor -1 indica error.
LIBRERIAS DE TURBO C - errno.h
Contiene constantes, tipos de datos y variables globales LIBRERIAS DE TURBO C - fcntl.h
Contiene los flags de apertura de ficheros o de funciones
similares de librer¡a. Estos flags son:
O_APPEND O_RDWR
O_BINARY O_TEXT
O_CREAT O_TRUNC
O_EXCL O_WRONLY
O_RDONLY
LIBRERIAS DE TURBO C - float.h
_clear87()
Sintaxis: unsigned int _clear87(void);
Declarado: float.h
Funci¢n: Inicializa la palabra de estado del coprocesador
matem tico 8087/80287.
_control87()
Sintaxis: unsigned int _control87(unsigned int new,
unsigned int mask);
Declarado: float.h
Funci¢n: Carga o descarga el coprocesador.
_fpreset()
Sintaxis: void _fpreset(void);
Declarado: float.h
Funci¢n: Esta funci¢n reinicializa el sistema aritm‚tico de
punto flotante. Puede ser necesario inicializar las
rutinas de punto flotante despu‚s de ejecutar las
funciones system(), exec(), spawn() o signal().
_status87()
Sintaxis: unsigned int _status87(void);
Declarado: float.h
Funci¢n: devuelve el valor de la palabra de estado del
coprocesador matem tico.
LIBRERIAS DE TURBO C - graphics.h
arc()
Sintaxis: void far arc(int x, int y, int ang1, int ang2,
int rad)
Declarado: graphics.h
Funci¢n: Dibuja un arco circular en el color en curso con
centro en (x, y) y radio rad comenzando en ang1 y
terminando en ang2. Cero grados ser¡a a las 3 del reloj y
90 grados a las 12.
bar()
Sintaxis: void far bar(int izda, int arriba, int dcha,
int abajo)
Declarado: graphics.h, conio,h
Funci¢n: Dibuja una barra rectangular de 2 dimensiones. La
barra es rellenada utilizando el color de relleno en
curso, definido previamente con la funci¢n
setfillpattern().
bar3d()
Sintaxis: void far bar3d(int izda, int arriba, int dcha,
int abajo, int prof, int flag);
Declarado: graphics.h
Funci¢n: Dibuja una barra tridimensional y la rellena
utilizando la paleta de relleno en curso. La profundidad
en pixels viene dada por prof. Si flag no es cero el
efecto tridimensional es puesto arriba.
circle()
Sintaxis: void far circle(int x, int y, int radio);
Declarado: graphics.h
Funci¢n: Dibuja un circulo en el color actual, con centro en
(x, y) y de radio.
cleardevice()
Sintaxis: void far cleardevice(void);
Declarado: graphics.h
Funci¢n: Esta funci¢n borra toda la pantalla gr fica, y deja
la posici¢n actual en (0, 0).
clearviewport()
Sintaxis: void far clearviewport(void);
Declarado: graphics.h
Funci¢n: Limpia la ventana de dibujo en curso dej ndola del
color de fondo. La ventana deja de existir despues de la
ejecuci¢n de esta funci¢n.
closegraph()
Sintaxis: void far closegraph(void);
Declarado: graphics.h
Funci¢n: Restaura el modo que tenia la pantalla antes de
ejecutarse initgraph(). Desactiva el entorno gr fico del
DOS.
detectgraph()
Sintaxis: void far detectgraph(int far *g_driver, int far
g_modo);
Declarado: graphics.h
Funci¢n: Establece en g_driver el tipo de adaptador gr fico
disponible por el ordenador y escoge en g_modo el modo de
mayor resoluci¢n gr fica que da el adaptador. Si se
detecta que no hay hardware gr fico g_driver es puesto
a -2.
Valores para g_driver:
--------------------------------------------------
Valor figurativo Valor num‚rico
--------------------------------------------------
DETECT 0 (ruega autodetecci¢n)
CGA 1
MCGA 2
EGA 3
EGA64 4
EGAMONO 5
IBM8514 6
HERCMONO 7
ATT400 8
VGA 9
PC3270 10
--------------------------------------------------
Valores de g_modo:
-------------------------------------------------------
Filas x
Tarjeta modo Valor Columnas paleta pag.
-------------------------------------------------------
CGA CGAC0 0 320x200 C0 1
CGAC1 1 320x200 C1 1
CGAC2 2 320x200 C2 1
CGAC3 3 320x200 C3 1
CGAHI 4 640x200 2 color 1
MCGA MCGAC0 0 320x200 C0 1
MCGAC1 1 320x200 C1 1
MCGAC2 2 320x200 C2 1
MCGAC3 3 320x200 C3 1
MCGAMED 4 640x200 2 color 1
MCGAHI 5 640x200 2 color 1
EGA EGALO 0 640x200 16 color 4
EGAHI 1 640x350 4 color 2
EGA64 EGA64LO 0 640x200 16 color 1
EGA64HI 1 640x350 4 color 1
EGAMONO EGAMONOHI 3 640x350 2 color 1*
EGAMONOHI 3 640x350 2 color 2**
HERC HERCMONOHI 0 750x348 2 color 2
ATT400 ATT40C0 0 320x200 C0 1
ATT40C1 1 320x200 C1 1
ATT40C2 2 320x200 C2 1
ATT40C3 3 320x200 C3 1
ATT40MED 4 640x200 2 color 1
ATT40HI 5 640x00 2 color 1
VGA VGALO 0 640x200 16 color 2
VGAMED 1 640x350 16 color 2
VGAHI 2 640x480 16 color 1
PC3270 PC3270HI 0 720x350 2 color 1
IBM8514 IBM8514LO 0 640x480 256 color
IBM8514HI 0 1024x768 256 color
* 64K en tarjeta EGAMONO
** 256k en tarjeta EGAMONO
drawpoly()
Sintaxis: void far drawpoly(int num_esquinas, int
polypoints)
Declarado: graphics.h
Funci¢n: Dibuja las l¡neas de salida de un pol¡gono, donde el
n£mero de esquinas es num_esquinas y las coordenadas x, y
de cada esquina est n en el array polypoints. Por
ejemplo:
int polypoints[] = {160, 50, 140, 80, 180, 80};
drawpoly(3, polypoints);
ellipse()
Sintaxis void far ellipse(int x, int y, int ang_comi,
int ang_fin, int xradio, int yradio);
Declarado: graphics.h
Funci¢n: Dibuja un arco el¡ptico en la pantalla gr fica con
centro en (x, y) comenzando en ang_comi y terminando en
ang_fin. Cero grados ser¡a a las 3 del reloj y 90 grados
a las 12. xradio es el radio curvatura a lo largo del eje
x (horizontal), e yradio es el radio de curvatura a lo
largo del eje y (vertical).
fillellipse()
Sintaxis: void far fillellipse(int x, int y, int radx,
int rady);
Declarado: graphics.h
Funci¢n: Dibuja y rellena con los colores en curso una elipse
con centro en x, y y radx y rady como ejes horizontal y
vertical.
fillpoly()
Sintaxis: void far fillpoly(int numpunt, int far
*polipoints);
Declarado: graphics.h
Funci¢n: Dibuja un pol¡gono de numpunt puntos en el estilo de
l¡nea actual. poliponints es un array con los pares de
coordenadas de cada punto.
floodfill()
Sintaxis: void far floodfill(int x, int y, int col_bord);
Declarado: graphics.h
Funci¢n: Rellena la zona en la que est situado x, y, siendo
el color del borde col_bord. El color de relleno est
especificado por el valor actual de setcolor o por la
funci¢n setfillstyle.
getarccoords()
Sintaxis: void far getarccoords(struct arccoordstype far
*arccoords);
Declarado: graphics.h
Funci¢n: Rellena la estructura apuntada por arccoords con
informaci¢n de la £ltima llamada a arc. La estructura
arccoordstype es como sigue:
struct arccoordstype {
int x, y;
int xstart, ystart, xend, yend;
};
Los miembros de esta estructura son utilizados para
especificar el centro (x, y), la posici¢n de comienzo
(xstart, ystart) y la posici¢n de finalizaci¢n (xend,
yend).
getaspectratio()
Sintaxis: void far getaspectratio(int far *xasp, int far
*yasp);
Declarado: graphics.h
Funci¢n: Hace los ajustes para poder ver por pantalla c¡rculos
perfectos.
getbkcolor()
Sintaxis: int far getbkcolor(void);
Declarado: graphics.h
Funci¢n: Devuelve el n£mero de color de fondo.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»
º MACROS ³ VALOR º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ
º BLACK ³ 0 º
º BLUE ³ 1 º
º GREEN ³ 2 º
º CYAN ³ 3 º
º RED ³ 4 º
º MAGENTA ³ 5 º
º BROWN ³ 6 º
º LIGHTGRAY ³ 7 º
º DARKGRAY ³ 8 º
º LIGHTBLUE ³ 9 º
º LIGHTGREEN ³ 10 º
º LIGHTCYAN ³ 11 º
º LIGHTRED ³ 12 º
º LIGHTMAGENTA ³ 13 º
º YELLOW ³ 14 º
º WHITE ³ 15 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ
getcolor()
Sintaxis: int far getcolor(void);
Declarado: graphics.h
Funci¢n: Devuelve el color actual de dibujo.
getdefaultpalette()
Sintaxis: void far *far getdefaultpalette(void);
Declarado: graphics.h
Funci¢n: Busca en la estructura palettetype donde est
contenida la paleta devolviendo un puntero a la paleta
actual.
getdrivername()
Sintaxis: char *far getdrivername(void);
Declarado: graphics.h
Funci¢n: Devuelve un puntero a una cadena que contiene el
nombre del drive gr fico actual.
getfillpattern()
Sintaxis: void far getfillpattern(char far *patron);
Declarado: grphics.h
Funci¢n: Copia en memoria el patr¢n de relleno definido.
patron es un puntero a una secuencia de 8 bits, que
corresponden a 8 pixels del patr¢n.
getfillsettings()
Sintaxis: void far getfillsettings(struct
fillsettingstype far *info);
Declarado: graphics.h
Funci¢n: Asigna a la estructura apuntada por info el n£mero
correspondiente al patr¢n de relleno y el color en curso.
La estructura tiene la forma:
struct fillsettingstype {
int pattern; /* patr¢n de relleno actual */
int color; /* color de relleno actual */
};
Los valores que puede tener el patr¢n son los siguientes:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º MACRO ³ VALOR ³ MODO DE RELLENO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º EMPTY_FILL ³ 0 ³ Color de fondo º
º SOLID_FILL ³ 1 ³ Color s¢lido º
º LINE_FILL ³ 2 ³ Con lineas º
º LTSLASH_FILL ³ 3 ³ Con barras finas º
º SLASH_FILL ³ 4 ³ Con barras º
º BKSLASH_FILL ³ 5 ³ Con barras invertidas º
º LTBKSLASH_FILL ³ 6 ³ Barras invertidas finas º
º XHATCH_FILL ³ 8 ³ Rellenar con sombreado º
º INTERLEAVE_FILL ³ 9 ³ Rellenar intercalado º
º WIDEDOT_FILL ³ 10 ³ Con puntos muy espaciados º
º CLOSEDOT_FILL ³ 11 ³ Con puntos agrupados º
º USER_FILL ³ 12 ³ Con patr¢n usual º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
getgraphmode()
Sintaxis: int far getgraphmode(void);
Declarado: graphics.h
Funci¢n: Devuelve el modo gr fico actual seleccionado con
initgraph o setgraphmode.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º MACRO ³ VALOR ³ RESOLUCION º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º CGAC0 ³ 0 ³ 320 X 200 º
º CGAC1 ³ 1 ³ 320 X 200 º
º CGAC2 ³ 2 ³ 320 X 200 º
º CGAC3 ³ 3 ³ 320 X 200 º
º CGAHI ³ 4 ³ 640 X 200 º
º MCGAC0 ³ 0 ³ 320 X 200 º
º MCGAC1 ³ 1 ³ 320 X 200 º
º MCGAC2 ³ 2 ³ 320 X 200 º
º MCGAC3 ³ 3 ³ 320 X 200 º
º MCGAMED ³ 4 ³ 640 X 200 º
º MCGAHI ³ 5 ³ 640 X 200 º
º EGALO ³ 0 ³ 640 X 200 º
º EGAHI ³ 1 ³ 640 X 350 º
º EGA64LO ³ 0 ³ 640 X 200 º
º EGA64HI ³ 1 ³ 640 X 350 º
º EGAMONOHI ³ 3 ³ 640 X 350 º
º HERCMONOHI ³ 0 ³ 720 X 348 º
º ATT400C0 ³ 0 ³ 320 X 200 º
º ATT400C1 ³ 1 ³ 320 X 200 º
º ATT400C2 ³ 2 ³ 320 X 200 º
º ATT400C3 ³ 3 ³ 320 X 200 º
º ATT400CMED ³ 4 ³ 640 X 200 º
º ATT400CHI ³ 5 ³ 640 X 400 º
º VGALO ³ 0 ³ 640 X 200 º
º VGAMED ³ 1 ³ 640 X 350 º
º VGAHI ³ 2 ³ 640 X 480 º
º PC3270HI ³ 0 ³ 720 X 350 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
getimage()
þSintaxis:þoid far getimage(int izda, int sup, int dcha,
int inf, void far *bitmap);
Declarado: graphics.h
Funci¢n: Copia una imagen rectangular de bits de la pantalla
gr fica en un array de elementos unsigned char apuntado
por bitmap.
getlinesettings()
Sintaxis: void far getlinesettings(struct
linesettingstype far *info);
Declarado: graphics.h
Funci¢n: Asigna a la estructura apuntada por info el tipo de
linea en curso. La estructura linesettingstyle tiene la
forma siguiente:
struct linesettingstyle {
int linestyle;
unsigned upattern;
int thickness;
};
El campo linestyle indica el estilo de l¡nea. Contiene
uno de los siguientes valores:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º VALOR ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SOLID_LINE ³ L¡nea continua º
º DOTTED_LINE ³ L¡nea punteada º
º CENTER_LINE ³ L¡nea centrada º
º DASHED_LINE ³ Guiones º
º USERBIT_LINE ³ Definida por el usuario º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Si linestyle es igual a USERBIT_LINE, el campo upattern
determina como aparece la l¡nea. Cada bit de upattern
corresponde a un pixel. Si un bit est activado, el pixel
tambi‚n lo est .
El campo thickness puede contener estos valores:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º VALOR ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º NORM_WIDTH ³ 1 pixel de ancho º
º THICK_WIDTH ³ 3 pixels de ancho º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
getmaxcolor()
Sintaxis: int far getmaxcolor(void);
Declarado: graphics.h
Funci¢n: Devuelve el m ximo de color disponible del modo
gr fico actual que puede ser pasado por la funci¢n
setcolor.
getmaxx()
Sintaxis: int far getmaxx(void);
Declarado: graphics.h
Funci¢n: Devuelve el m ximo valor que puede ser tomado por la
coordenada x en el modo gr fico actual.
getmaxy()
Sintaxis: int far getmaxy(void);
Declarado: graphics.h
Funci¢n: Devuelve el m ximo valor que puede ser tomado por la
coordenada y en el modo gr fico actual.
getmodename()
Sintaxis: char far *getmodename(int num_modo);
Declarado: graphics.h
funci¢n: Devuelve un puntero a una cadena que contiene el
nombre del modo gr fico para el n£mero especificado en
num_modo.
getmoderange()
Sintaxis: void far getmoderange(int graphdriver, int far
*bajmodo, int far *supmodo);
Declarado: graphics.h
Funci¢n: Carga el rango y modo gr fico v lido para el driver
gr fico indicado en graphdriver, el m¡nimo valor
permitido es cargado en bajmodo y el m ximo en supmodo.
Los posibles valores de graphdriver son:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»
º MACRO ³ VALOR º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ
º DETECT ³ 0 º
º CGA ³ 1 º
º MCGA ³ 2 º
º EGA ³ 3 º
º EGA64 ³ 4 º
º EGAMONO ³ 5 º
º RESERVED ³ 6 º
º HERCMONO ³ 7 º
º ATT400 ³ 8 º
º VGA ³ 9 º
º PC3270 ³ 10 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ
getpalette()
Sintaxis: void far getpalette(struct palettetype far
*palette);
Declarado: graphics.h
Funci¢n: Carga informaci¢n en torno a la paleta actual en la
estructura palette de tipo palettetype que tiene la
siguiente forma:
#define MAXCOLORS 15
struct palettetype {
unsigned char size;
signed char colors[MAXCOLORS + 1];
};
Esta estructura y la constante MAXCOLORS est n definidas
en graphis.h.
size contiene el n£mero de colores de la paleta para el
modo gr fico actual.
getpalettesize()
Sintaxis: int far getpalettesize(void);
Declarado: graphics.h
Funci¢n: Devuelve el n£mero de paletas que pueden ser
utilizadas en el modo gr fico actual.
getpixel()
Sintaxis: unsigned far getpixel(int x, int y);
Declarado: graphics.h
Funci¢n: Devuelve el color del pixel x, y.
gettextsettings()
Sintaxis: void far gettextsettings(struct
textsettingstype far *texttypeinfo);
Declarado: graphics.h
Funci¢n: Carga informaci¢n en la estructura texttypeinfo de
tipo textsettingstype en torno al texto del modo gr fico
actual. La estructura es como sigue:
struct textsettingstype {
int font; /* tipo */
int direction; /* horizontal o vertical */
int charsize; /* tama¤o */
int horiz; /* justificaci¢n horizontal */
int vert; /* justificaci¢n vertical */
};
El campo font contiene uno de los valores:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º TIPO ³ VALOR ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º DEFAULT_FONT ³ 0 ³ Por defecto 8x8 bits º
º TRIPLEX_FONT ³ 1 ³ Triple º
º SMALL_FONT ³ 2 ³ Peque¤o º
º SANSSERIF ³ 3 ³ Sans serif (o lineal) º
º GOTHIC_FONT ³ 4 ³ G¢tico º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
El campo direction de contener el valor HORIZ_DIR para
texto horizontal (por defecto) o el valor VERT_DIR para
texto vertical.
El campo charsize se emplea para calcular los tama¤os de
texto.
Los campos horiz y vert indican c¢mo se justifica el
texto con respecto a la posici¢n del cursor. Pueden
contener los valores siguientes:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º MACRO ³ VALOR ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º LEFT_TEXT ³ 0 ³ Posici¢n a la izquierdº
º CENTER_TEXT ³ 1 ³ Posici¢n en el centro º
º RIGHT_TEXT ³ 2 ³ Posici¢n a la derecha º
º BOTTOM_TEXT ³ 3 ³ Posici¢n abajo º
º TOP_TEXT ³ 4 ³ Posici¢n arriba º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
getviewsettings()
Sintaxis: void far getviewsettings(struct viewporttype
far *info);
Declarado: graphics.h
Funci¢n: Almacena en la estructura apuntada por info la
informaci¢n de la ventana en curso. La estructura
contiene los elementos siguientes:
struct wiewporttype {
int left, top, right, bottom;
int clipflag;
};
getx()
Sintaxis: int far getx(void);
Declarado: graphics.h
Funci¢n: Devuelve el valor de la coordenada x del cursor en la
pantalla o en la ventana.
gety()
Sintaxis: int far getx(void);
Declarado: graphics.h
Funci¢n: Devuelve el valor de la coordenada y del cursor en la
pantalla o en la ventana.
graphdefaults()
Sintaxis: void far graphdefaults(void);
Declarado: graphics.h
Funci¢n: borra las opciones gr ficas actuales dejando las de
por defecto.
Selecciona como ventana la pantalla completa.
Mueve la posici¢n del cursor a (0, 0).
Selecciona por defecto la paleta, fondo y dibujo.
Selecciona font de texto y justificaci¢n por defecto.
grapherrormsg()
Sintaxis: char *far grapherrormsg(int errorcode);
Declarado: graphics.h
Funci¢n: Devuelve un puntero a la cadena de mensaje de error
asociada a errorcode. Este error se obtiene de una
llamada a graphresult().
_graphfreemem()
Sintaxis: void far _graphfreemem(void far *ptr, unsigned
size);
Declarado: graphics.h
Funci¢n: Libera memoria previamente asignada con _graphgetmem.
_graphgetmem()
Sintaxis: void far *far _graphgetmem(unsigned size);
Declarado: graphics.h
Funci¢n: Esta funci¢n es llamada para disponer memoria para
buffers gr ficos.
graphresult()
Sintaxis: int far graphresult(void);
Declarado: graphics.h
Funci¢n: Devuelve el c¢digo de error de la £ltima operaci¢n
gr fica. Valores retornados:
0 No hay error.
-1 (BGI) no instalado.
-2 hardware gr fico no detectado.
-3 Dispositivo de fichero no encontrado.
-4 dispositivo de fichero inv lido
-5 No hay espacio en memoria para cargar driver.
-6 Fuera de memoria en scan fill.
-7 Fuera de memoria en flood fill.
-8 Fichero de Font no encontrado
-9 No hay espacio para cargar font
-10 Modo gr fico no valido
-11 Error gr fico
-12 Error I/O gr fico
-13 Fichero de font no valido
-14 Inv lido n£mero de font
-15 N£mero de dispositivo no v lido
-18 N£mero de versi¢n no valida.
imagesize()
Sintaxis: unsigned far imagesize(int izda, int sup, int
dcha, int abajo);
Declarado: graphics.h
Funci¢n: Devuelve el n£mero de bytes necesarios para almacenar
una imagen de bits.
initgraph()
Sintaxis: void far initgraph(int far *g_driver, int far
*g_modo, char far *path);
Declarado: graphics.h
Funci¢n: Inicializa el sistema de gr ficos y pone la pantalla
en modo gr fico detectado previamente por detectgraph,
tambi‚n especifica la v¡a de acceso de los ficheros del
controlador de gr ficos. (El Turbo C proporciona ficheros
separados para los ocho adaptadores de gr ficos). Si el
controlador de gr ficos est en el directorio por
defecto, o si se ha enlazado el controlador de gr ficos
al programa, se puede poner simplemente dos pares de
comillas ("") los caracteres '\', hay que ponerlos
duplicados. Ejemplo: a:\\pp\\antxon
Valores para g_driver:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º MACRO ³ VALOR º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º DETECT ³ 0 (autodetecci¢n)º
º CGA ³ 1 º
º MCGA ³ 2 º
º EGA ³ 3 º
º EGA64 ³ 4 º
º EGAMONO ³ 5 º
º IBM8514 ³ 6 º
º HERCMONO ³ 7 º
º ATT400 ³ 8 º
º VGA ³ 9 º
º PC3270 ³ 10 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Valores de g_modo:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Filas x º
º Tarjeta modo Valor Columnas paleta pag. º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º CGA CGAC0 0 320x200 C0 1 º
º CGAC1 1 320x200 C1 1 º
º CGAC2 2 320x200 C2 1 º
º CGAC3 3 320x200 C3 1 º
º CGAHI 4 640x200 2 color 1 º
º MCGA MCGAC0 0 320x200 C0 1 º
º MCGAC1 1 320x200 C1 1 º
º MCGAC2 2 320x200 C2 1 º
º MCGAC3 3 320x200 C3 1 º
º MCGAMED 4 640x200 2 color 1 º
º MCGAHI 5 640x200 2 color 1 º
º º
º EGA EGALO 0 640x200 16 color 4 º
º EGAHI 1 640x350 4 color 2 º
º EGA64 EGA64LO 0 640x200 16 color 1 º
º EGA64HI 1 640x350 4 color 1 º
º EGAMONO EGAMONOHI 3 640x350 2 color 1* º
º EGAMONOHI 3 640x350 2 color 2** º
º º
º HERC HERCMONOHI 0 750x348 2 color 2 º
º ATT400 ATT40C0 0 320x200 C0 1 º
º ATT40C1 1 320x200 C1 1 º
º ATT40C2 2 320x200 C2 1 º
º ATT40C3 3 320x200 C3 1 º
º ATT40MED 4 640x200 2 color 1 º
º ATT40HI 5 640x00 2 color 1 º
º º
º VGA VGALO 0 640x200 16 color 2 º
º VGAMED 1 640x350 16 color 2 º
º VGAHI 2 640x480 16 color 1 º
º PC3270 PC3270HI 0 720x350 2 color 1 º
º IBM8514 IBM8514LO 0 640x480 256 color º
º IBM8514HI 0 1024x768 256 color º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
* 64K en tarjeta EGAMONO
** 256k en tarjeta EGAMONO
installuserdriver()
Sintaxis: int far installuserdriver(char far *nombre, int
huge(*detect)(void));
Declarado: graphics.h
Funci¢n: -o-o-o-oo-o-o-o-o-o-o-o-o-o-o-o-o-o-oo-o-o-o-o-o-o-o
installuserfont()
Sintaxis: int far installuserfont(char far *nombre);
Declarado: graphics.h
Funci¢n: nombre es un path a un fichero de fonts (.CHR). M s
de treinta fonts pueden ser instaladas de una vez.
line()
Sintaxis: void far line(int x1, int y1, int x2, int y2);
Declarado: graphics.h
Funci¢n: Dibuja una l¡nea entre dos puntos de la pantalla
gr fica.
linerel()
Sintaxis: void far linerel(int dx, int dy);
Declarado: graphics.h
Funci¢n: Dibuja una l¡nea desde la posici¢n actual del cursor
hasta un punto (dx, dy) expresado en coordenadas
relativas a la posici¢n actual.
lineto()
Sintaxis: void far lineto(int x, int y);
Declarado: graphics.h
Funci¢n: Dibuja una l¡nea desde la posici¢n actual del cursor
a el punto cuyas coordenadas son (x, y).
moverel()
Sintaxis: void far moverel(int dx, int dy);
Declarado: graphics.h
Funci¢n: Mueve la posici¢n actual del cursor dx pixels en la
direcci¢n x y dy pixels en direcci¢n y.
moveto()
Sintaxis: void far moveto(int x, int y);
Declarado: graphics.h
Funci¢n: Mueve el cursor a la posici¢n x, y.
outtext()
Sintaxis: void far outtext(char far *cadena);
Declarado: graphics.h
Funci¢n: Escribe una cadena en la ventana gr fica, en la
posici¢n actual del cursor, utilizando la justificaci¢n,
font, direcci¢n y tama¤o actual.
outtextxy()
Sintaxis: void far outtextxy(int x, int y, char far
*cadena);
Declarado: graphics.h
Funci¢n: Escribe una cadena en la ventana gr fica, en la
posici¢n (x,y), utilizando la justificaci¢n, font,
direcci¢n y tama¤o actual.
pieslice()
Sintaxis: void far pieslice(int x, int y, int stangle,
int endangle, int radio);
Declarado: graphics.h
Funci¢n: Dibuja y rellena una rebanada de pastel con centro en
x, y, con un radio dado por radio , comenzando en stangle
y terminando en endangle. El trozo de tarta es rellenado
y dibujado en el color actual.
putimage()
Sintaxis: void far putimage(int izda, int sup, void far
*bitmap, int parm);
Declarado: graphics.h
Funci¢n: Dibuja un modelo de mapa de bits en la pantalla
gr fica. El modelo debe ser un array de unsigned char
(por ejemplo) obtenido usando la funci¢n getimage o
cre ndolo de alguna otra manera. izda y sup indican la
posici¢n de la esquina superior izda del modelo del mapa
de bits, y parm es un par metro que especifica como se
coloca la imagen de los gr ficos en pantalla. Los
par metros y sus significados son los siguientes:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Constante ³ Valor ³ Descripci¢n º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º COPY_PUT ³ 0 ³ Copia directa º
º XOR_PUT ³ 1 ³ O-Exclusiva (Borra) º
º OR_PUT ³ 2 ³ O-Inclusiva (une) º
º AND_PUT ³ 3 ³ Y (cubre) º
º NOT_PUT ³ 4 ³ Copia inversa º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
La combinaci¢n de getimage y putimage es ideal para
cubrir el dise¤o de ventanas y deshacer zonas editadas de
la pantalla de gr ficos. Mientras putimage trabaja bien
para dibujar el modelo de mapa de bits en la pantalla,
getimage es una funci¢n ineficaz para definir el modelo.
putpixel()
Sintaxis: void far putpixel(int x, int y, int color);
Declarado: graphics.h
Funci¢n: Dibuja un punto en (x, y) en el color color.
rectangle()
Sintaxis: void far rectangle(int izda, int sup, int dcha,
int abajo);
Declarado: graphics.h
Funci¢n: Dibuja un rect ngulo en el estilo de l¡nea actual.
(izda,sup) y (dcha,abajo) son las coordenadas de los
v‚rtices superior izdo e inferior dcho del rect ngulo.
registerbgidriver() registerbgifont() utilidad BGIOBJ
La utilidad BGIOBJ convierte los ficheros .BGI y .CHR
(drivers gr ficos y tipos de letras) en ficheros .OBJ de
forma que se puedad enlazar junto con cualquier programa
compilado.
La ventaja de emplear ficheros objeto, es que al montar
un programa, se conocer el tama¤o exacto del c¢digo
ejecutable. De la otra forma, el driver gr fico, junto
con los tipos de letra, se cargan en memoria en tiempo de
ejecuci¢n, a medida que los necesita el programa.
El formato de la orden es:
BGIOBJ
Los ficheros objeto se pueden a¤adir a la misma libreria
gr fica, emplenado TLIB:
TLIB graphics + [+ ...]
Los ficheros que se pueden convertir son:
CGA.BGI
EGAVGA.BGI
HERC.BGI
ATT.BGI
PC3270.BGI
IBM8514.BGI
TRIP.CHR
LITT.CHR
SANS.CHR
GOTH.CHR
Para poder emplear los ficheros .OBJ, ser necesario
indicarle al compilador que se van a emplear estos
ficheros, de forma que los pueda montar junto con el
programa. Para ello se emplean las funciones
registerbgidriver() y registerbgifont(). Con estas
funciones se indica al sistema que se emplear n los
ficheros listados anteriormente. Ambas funciones
necesitan como argumento un nombre simb¢lico (definido en
graphics.h) que representa a los gr ficos. Los nombres
posibles son:
CGA_driver
EGAVGA_driver
Herc_driver
ATT_driver
PC3270_driver
IBM8514_driver
triplex_font
small_font
sansserif_font
gothic_font
Las funciones registerbgidriver() y registerbgifont() se
deben invocar dentro del programa, antes de initgraph().
La secuencia de trabajo quedar como sigue:
1. Convertir el fichero
Por ejemplo:
BGIOBJ HERC
BGIOBJ GOTH
2. A¤adirlo a la librer¡a gr fica.
Por ejemplo:
TLIB GRAPHICS+HERC+GOTH
3. Si no se han incluido los m¢dulos objeto en la
librer¡a, se compilan junto con el programa fuente
(o se a¤aden al fichero de proyecto).
Por ejemplo:
TCC prog-fuente GRAPHICS.LIB HERC.OBJ GOTH.OBJ
4. En el programa se incluir n las llamadas a
registerbgidriver() y registerbgifont().
Por ejemplo:
if(registerbgidriver(Herc_driver)<0) {
fprintf(stderr,"Error al registrar el driver");
exit(1);
}
if(registerbgifont(gothic_font)<0) {
fprintf(stderr,"Error al registrar tipo deletra");
exit(2);
}
Si al compilar o montar el programa aparece el error
Segment exceeds 64k, ser necesario convertir el fichero
con la opci¢n /F. Con esta opci¢n se emplea un nuevo
segmento para los ficheros gr ficos. En este caso, a los
nombre simb¢licaos se les a¤ade la palabra _far, y las
funciones para registrar m¢dulos gr ficos ser n
registerfarbgidriver() y registerfarbgifont().
restorecrtmode()
Sintaxis: void far restorecrtmode(void);
Declarado: graphics.h
Funci¢n: Restaura el modo de video al modo anterior a la
llamada a initgraph().
sector()
Sintaxis: void far sector(int x, int y, int comang, int
endang, int radx, int rady);
Declarado: graphics.h
Funci¢n: Dibuja y rellena un trozo el¡ptico de tarta con
centro en (x, y) radx y rady son el radio horizontal y
vertical, comenzando a dibujarse en comang y terminando
en endang. 0 grados ser¡a a las 3 del reloj y 90 grados a
las 12.
setactivepage()
Sintaxis: void far setactivepage(int pag);
Declarado: graphics.h
Funci¢n: Define la p gina de la pantalla que recibir la
salida de las funciones gr ficas. Por defecto, se emplea
la p gina 0. Si se utiliza otro n£mero, toda la salida
ir a la nueva p gina. En modo gr fico, solo las tarjetas
EGA y VGA soportan m s de una p gina, aunque no en todos
los modos se puede trabajar con varias p ginas.
setallpalette()
Sintaxis: void far setallpalette(struct palettetype far
*paleta);
Declarado: graphics.h
Funci¢n: Se emplea para cambiar los colores de la paleta de
colores de un tarjeta EGA/VGA. La estructura palettetype
es la siguiente:
struct palettetype {
unsigned char size;
signed char colors[16];
}
Se debe asignar a cada color de la tabla su nuevo valor.
La tabla de colores se indica en la funci¢n setpalette().
setaspectratio()
Sintaxis: void far setaspectratio(int xasp, int yasp);
Declarado: graphics.h
Funci¢n: Cambia el factor de correcci¢n de aspecto ratio.
setbkcolor()
Sintaxis: void far setbkcolor(int color);
Declarado: graphics.h
Funci¢n: Modifica el color de fondo. El argumento color tiene
los siguientes valores:
ÉÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º N£mero ³ Nombre º N£mero ³ Nombre º
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º 0 ³ BLACK º 8 ³ DARKGRAY º
º 1 ³ BLUE º 9 ³ LIGHTBLUE º
º 2 ³ GREEN º 10 ³ LIGHTGREEN º
º 3 ³ CYAN º 11 ³ LIGHTCYAN º
º 4 ³ RED º 12 ³ LIGHTRED º
º 5 ³ MAGENTA º 13 ³ LIGHTMAGENTA º
º 6 ³ BROWN º 14 ³ YELLOW º
º 7 ³ LIGHTGRAY º 15 ³ WHITE º
ÈÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
NOTA: Si se utiliza una tarjeta VGA o EGA, y se cambia el
color de paleta con setpalette o setallpalette, la
constante simb¢lica, puede no dar el color correcto.
setcolor()
Sintaxis: void far setcolor(int color);
Declarado: graphics.h
Funci¢n: Establece el color de trazado de gr ficos. Color
puede ser uno de los valores indicados en la funci¢n
setpalette().
setfillpattern()
Sintaxis: void far setfillpattern(char far *modelo, int
color);
Declarado: graphics.h
Funci¢n: Establece el relleno del modelo definido por el
usuario. modelo es un puntero a una secuencia de 8 bytes,
cada byte corresponde a 8 pixels en la paleta. Siempre
que un bit de la paleta vale 1, el pixel correspondiente
es dibujado. El relleno ir coloreado en el color
indicado por color.
setfillstyle()
Sintaxis: void far setfillstyle(int modelo, int color);
Declarado: graphics.h
Funci¢n: Establece el estilo de relleno. modelo podr ser:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Nombre ³Valor³ Descripci¢n º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º EMPTY_FILL ³ 0 ³ Relleno con el color de fondo º
º SOLID_FILL ³ 1 ³ Relleno s¢lido º
º LINE_FILL ³ 2 ³ Relleno con ÄÄÄÄ º
º LTSLASH_FILL ³ 3 ³ Relleno con //// º
º SLASH_FILL ³ 4 ³ Relleno con ////, l¡nea gruesa º
º BKSLASH_FILL ³ 5 ³ Relleno con \\\\, l¡nea gruesa º
º LTBKSLASH_FILL ³ 6 ³ Relleno con \\\\ º
º HATCH_FILL ³ 7 ³ Relleno de l¡neas brillantes º
º XHATCH_FILL ³ 8 ³ L¡neas gruesas cruzadas º
º INTERLEAVE_FILL³ 9 ³ Relleno de basura º
º WIDE_DOT_FILL ³ 10 ³ Punteado muy espaciado º
º CLOSE_DOT_FILL ³ 11 ³ Punteado muy cerrado. º
º USER_FILL ³ 12 ³ Modo definido por la paleta º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
setgraphbufsize()
Sintaxis: unsigned far setgraphbufsize(unsigned tama¤o);
Declarado: graphics.h
Funci¢n: Cambia el tama¤o del buffer interno para gr ficos
tama¤o. Esta funci¢n devuelve el valor previo de tama¤o
del buffer.
setgraphmode()
Sintaxis: void far setgraphmode(int modo);
Declarado: graphics.h
Funci¢n: Define el modo gr fico especificado en modo. los
valores de modo se explican con la funci¢n initgraph().
setlinestyle()
Sintaxis: void far setlinestyle(int estilo, unsigned
upattern, int densidad);
Declarado: graphis.h
Funci¢n: Selecciona estilo y anchura de l¡nea.
estilo puede ser:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Nombre ³ Valor ³ Descripci¢n º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SOLID_LINE ³ 0 ³ L¡nea s¢lida º
º DOTTED_LINE ³ 1 ³ L¡nea punteada º
º CENTER_LINE ³ 2 ³ L¡nea centrada º
º DASHED_LINE ³ 3 ³ L¡nea larga º
º USERBIT_LINE ³ 4 ³ Definido por usuario. º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
densidad puede ser:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Nombre ³ Valor ³ Descripci¢n º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º NORM_WIDTH ³ 1 ³ 1 pixel de anchura º
º THICK_WIDTH ³ 3 ³ 3 pixel de anchura º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
upattern es un formato de 16 bits que se aplica solo si
estilo = 4
setpalette()
Sintaxis: void far setpalette(int index, int color);
Declarado: graphics.h
Funci¢n: Define los colores de la pantalla. El argumento color
toma los valores siguentes:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º CGA º EGA/VGA º
º Nombre Valor º Nombre Valor º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄĶ
º BLACK ³ 0 º EGA_BLACK ³ 0 º
º BLUE ³ 1 º EGA_BLUE ³ 1 º
º GREEN ³ 2 º EGA_GREEN ³ 2 º
º CYAN ³ 3 º EGA_CYAN ³ 3 º
º RED ³ 4 º EGA_RED ³ 4 º
º MAGENTA ³ 5 º EGA_MAGENTA ³ 5 º
º BROWN ³ 6 º EGA_BROWN ³ 20 º
º LIGHTGRAY ³ 7 º EGA_LIGHTGRAY ³ 7 º
º DARKGRAY ³ 8 º EGA_DARKGRAY ³ 56 º
º LIGHTBLUE ³ 9 º EGA_LIGHTBLUE ³ 57 º
º LIGHTGREEN ³ 10 º EGA_LIGHTGREEN ³ 58 º
º LIGHTCYAN ³ 11 º EGA_LIGHTCYAN ³ 59 º
º LIGHTRED ³ 12 º EGA_LIGHTRED ³ 60 º
º LIGHTMAGENTA ³ 13 º EGA_LIGHTMAGENTA ³ 61 º
º YELLOW ³ 14 º EGA_YELLOW ³ 62 º
º WHITE ³ 15 º EGA_WHITE ³ 63 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍͼ
Nota: Para que el color sea v lido depende del modo
gr fico actual.
El argumento index se refiere a la posici¢n de una tabla
donde Turbo C selecciona los colores. Los colores de
fondo siempre tienen el ¡ndice 0. Con una tarjeta EGA se
pueden escribir 16 colores a la vez y admite un total de
64 colores. Se emplea la funci¢n setpalette() para
relacionar un color con un ¡ndice. Por ejemplo:
setpalette(0, RED);
modifica el color de fondo a rojo, y
setpalette(3, EGA_BLACK);
asigna el ¡ndice 3 a EGA_BLACK (negro)
setrgbpalette()
Sintaxis: void far setrgbpalette(int colornum, int rojo,
int verde, int azul);
Declarado: graphics.h
Funci¢n: Concede la definici¢n de colores para la tarjeta
gr fica IBM8514.
settextjustify()
Sintaxis: void far settextjustify(int horiz, int vert);
Declarado: graphics.h
Funci¢n: Selecciona la justificaci¢n del texto para las
funciones gr ficas. Por defecto la justificaci¢n
seleccionada es LEFT_TEXT (para horizontal) y TOP_TEXT
(para vertical). Los valores disponibles para horiz y
vert son:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Nombre ³ Valor ³ Descripci¢n º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º LEFT_TEXT ³ 0 ³ horiz º
º CENTER_TEXT ³ 1 ³ horiz y vert º
º RIGHT_TEXT ³ 2 ³ horiz º
º BOTTOM_TEXT ³ 0 ³ vert º
º TOP_TEXT ³ 2 ³ vert º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
settextstyle()
Sintaxis: void far settextstyle(int fuente, unsigned
direcci¢n, int tama¤o);
Declarado: graphics.h
Funci¢n: Especifica la fuente de texto (tipo de letra), la
direcci¢n y el tama¤o. fuente es el valor entero (o
constante simb¢lica) dado en la siguiente tabla:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Constante ³ Valor ³ Descripci¢n º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º DEFAULT_FONT ³ 0 ³ Font de trazado 8x8 bits º
º TRIPLEX_FONT ³ 1 ³ Font de trazado triple º
º SMALL_FONT ³ 2 ³ Font de trazado reducido º
º SANS_SERIF_FONT ³ 3 ³ Font de trazado sin serifº
º GOTHIC_FONT ³ 4 ³ Font de trazado G¢tico º
º ³ ³ º
º HORIZ_DIR ³ 0 ³ izda a dcha en horizontalº
º VERT_DIR ³ 1 ³ abajo a arriba vertical º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
direcci¢n es un entero que indica la direcci¢n del texto
(0=horizontal, 1=vertical) tama¤o es un entero (en el
rango de 1 a 10) para ajust r el tama¤o de la fuente.
setusercharsize()
Sintaxis: void far setuserc arsize(int multx, int divx,
int multy, int divy);
Declarado: graphics.h
Funci¢n: Afina el control sobre el tama¤o del texto de las
fonts utilizadas en las funciones gr ficas. Los valores
seleccionados por setusercharsize se activan solo si
charsize es igual a 0, puesto en una llamada previa a
settextstyle.
Con esta funci¢n se especifica el factor que regula la
escala de anchura y altura.
dicho de otra forma, multiplica las coordenadas de cada
car cter escrito en la pantalla de modo gr fico, de la
siguiente forma:
x = x*mulx/divx
y = y*muly/divy
setviewport()
Sintaxis: void far setviewport(int izda, int sup, int
dcha, int abajo, int banderacorte)
Declarado: graphics.h
Funci¢n: Establece una nueva ventana de dibujo. izda, sup son
la esquina superior izda de la ventana; dcha, abajo son
la esquina inferior derecha; y banderacorte establece la
bandera corte. Si banderacorte es 0 el corte est en off
y la salida de gr ficos, que ir¡a mas all de los l¡mites
de la ventana de dibujo, es ignorada totalmente (no se
muestra ning£n dibujo); si vale 1, el corte est en on y
la salida de gr ficos, que ir¡a m s all de los l¡mites
de la ventana de dibujo, es truncada en los l¡mites (pero
se muestra la parte del dibujo interior a la ventana de
dibujo).
setvisualpage()
Sintaxis: void far setvisualpage(int p gina);
Declarado: graphics.h
Funci¢n: Selecciona la p gina de video a visualizar.
setwritemode()
Sintaxis: void far setwritemode(int modo);
Declarado: graphics.h
Funci¢n: Selecciona el modo de escritura de una l¡nea en una
p gina gr fica
COPY_PUT = 0 /* MOV */
XOR_PUT = 1 /* XOR */
Cada una de estas constantes corresponde a una operaci¢n
binaria entre cada byte en la l¡nea y el correspondiente
byte en la pantalla. COPY_PUT utiliza la instrucci¢n MOV
de emsamblador, sobrescribiendo sobre cualquier cosa que
haya el la misma l¡nea de la pantalla. XOR_PUT utiliza el
comando XOR para borrar la l¡nea y restaurar la pantalla
a su apariencia original.
textheight()
Sintaxis: int far textheight(char far *textcad);
Declarado: graphics.h
Funci¢n: Devuelve la altura en pixels de la font actual.
textwidth()
Sintaxis: int far textwidth(char far *cadtext);
Declarado: graphics.h
Funci¢n: Devuelve la anchura de la cadena de texto cadtext en
pixels en la font y modo actual.
LIBRERIAS DE TURBO C - io.h
access()
Sintaxis: int access(const char *nomfichero, int modo)
Declarado: io.h
Funci¢n: Se emplea para para averiguar si un fichero existe.
Tambi‚n se puede utilizar para ver si el fichero est
protegido contra escritura y si es ejecutable. El
argumneto nomfichero apunta al nombre del fichero. El
valor modo determina como funciona access(). Los valores
posibles son:
0 Comprueba la existencia del fichero
1 Comprueba si es un fichero ejecutable
2 Comprueba la escritura
4 Comprueba la lectura
6 Comprueba la escritura y lectura.
La funci¢n access() devuelve 0 si se puede acceder al
fichero; en caso contrario, devuelve -1 y a la variable
global errno se le asigna uno de los valores:
ENOENT Camino o nombre de fichero no encontrado
EACCES Acceso denegado
_chmod()
Sintaxis: #include
#include
int _chmod(const char *path, int func[, int
atrib]);
Declarado: io.h
Funci¢n: Cambia el modo de acceso a un fichero. Si func es 0,
la funci¢n devuelve el atributo actual del fichero, Si es
1, el atributo es cambiado a atrib.
atrib puede ser una de las siguientes constantes
simb¢licas:
FA_RDONLY atributo de solo lectura.
FA_HIDDEN " " archivo oculto.
FA_SYSTEM " " " sistema.
chmod()
Sintaxis: #include
int chmod(const char *path, int pmodo);
Declarado: io.h
Funci¢n: Cambia el permiso que tiene el fichero especificado
en path por el especificado en pmodo, devolviendo 0 en
caso exitoso, y -1 en caso de error. Los valores que
puede tomar pmodo son:
S_IWRITE permiso de escritura
S_IREAD permiso de lectura.
S_IWRITE | S_IREAD lectura y escritura
chsize()
Sintaxis: int chsize(int num, long n);
Declarado: io.h
Funci¢n: Extiende o trunca el fichero cuyo n£mero asociado es
num, a la longitud especificada por n. El fichero debe
ser abierto de forma que permita la escritura. Si el
fichero es extendido, se a¤aden caracteres nulos ('\0').
_close()
Sintaxis: int _close(int num);
Declarado: io.h
Funci¢n: Esta funci¢n cierra el fichero asociado con num.
close()
Sintaxis: int _close(int num);
Declarado: io.h
Funci¢n: Esta funci¢n cierra el fichero asociado con num.
_creat()
Sintaxis: #include
int _creat(const char *path, int atrib);
Declarado: io.h
Funci¢n: Crea un nuevo fichero o reescribe en uno ya
existente. Si el fichero ya existe, su tama¤o es puesto a
0. El argumento atrib puede ser uno de los siguientes:
FA_RDONLY Solo lectura
FA_HIDDEN Oculto
FA_SYSTEM Del sistema.
Si no hay error devuelve el numero del fichero creado, en
caso contrario devuelve -1.
creat()
Sintaxis: #include
int creat(const char *path, int amode);
Declarado: io.h
Funci¢n: Crea un nuevo fichero o prepara para reescribir en
uno existente. El argumento amode puede ser:
S_IWRITE permiso de escritura.
S_IREAD permiso de lectura.
S_READ|S_IWRITE permiso de lectura y escritura.
Si no hay error devuelve el numero del fichero creado, en
caso contrario devuelve -1.
creatnew()
Sintaxis: #include
int creatnew(const char *path, int atrib);
Declarado: io.h
Funci¢n: Esta funci¢n es id‚ntica a _creat, con la excepci¢n
de que si el fichero existe, creatnew devuelve error y
deja el fichero intacto.
El argumento atrib debe ser uno de los siguientes:
FA_RDONLY atributo de solo lectura
FA_HIDDEN archivo oculto
FA_SYSTEM archivo del sistema.
Si no hay error devuelve el numero del fichero creado, en
caso contrario devuelve -1.
creattemp()
Sintaxis: #include
int creattemp(char *path, int atrib);
Declarado: io.h
Funci¢n: Crea un £nico fichero en el directorio asociado con
path. Es creado en el modo especificado por la variable
global _fmode (O_TEXT o O_BINARY). El fichero es borrado
automaticamente cuando el termina el programa.
El argumento atrib debe ser uno de los siguientes:
FA_RDONLY atributo de solo lectura
FA_HIDDEN archivo oculto
FA_SYSTEM archivo del sistema.
Si no hay error devuelve el numero del fichero creado, en
caso contrario devuelve -1.
dup()
Sintaxis: int dup(int handle);
Declarado io.h
Funci¢n: Da un nuevo n£mero al fichero de n£mero actual
handle, en caso de error da -1.
dup2()
Sintaxis: int dup2(int oldhandle, int newhandle);
Declarado: io.h
Funci¢n: Duplica un n£mero de fichero (oldhandle) sobre un
n£mero de fichero existente (newhandle). Si tiene ‚xito
esta funci¢n devuelve 0, en caso contrario -1.
eof()
Sintaxis: int eof(int handle);
Declarado: io.h
Funci¢n: Esta funci¢n devuelve 1 si se ha llegado al final del
fichero, en caso contrario devuelve 0. Un valor -1 indica
error.
filelength()
Sintaxis: long filelength(int pf);
Declarado: io.h
Funci¢n: Devuelve la longitud en bytes del fichero asociado a
pf, en caso de error devuelve -1.
getftime()
Sintaxis: int getftime(int handle, struct ftime *ftimep);
Declarado: io.h
Funci¢n: Carga fecha y hora del fichero de disco asociado con
handle, en la estructura ftimep de tipo ftime que es de
la forma siguiente.
struct ftime {
unsigned ft_tsec:5; /* dos segundos */
unsigned ft_min:6; /* minutos */
unsigned ft_hour:5; /* horas */
unsigned ft_day:5; /* d¡as */
unsigned ft_month:4; /* meses */
unsigned ft_year:5; /* a¤o-1980 */
};
ioctl()
Sintaxis: int ioctl(int handle, int func[, void *argdx,
int argcx]);
Declarado: io.h
Funci¢n: Controla el dispositivo de I/O.
isatty()
Sintaxis: int isatty(int num);
Declarado: io.h
Funci¢n: Determina si num est asociado con un dispositivo
(consola, impresora, puerto serie etc.). Devuelve un
valor distinto de 0 si num est asociado a un dispositivo
y 0 en caso contrario.
lock()
Sintaxis: int lock(int handle, long offset, long length);
Declarado: io.h
Funci¢n: Se utiliza para bloquear una parte de un fichero,
para prevenir que otro programa lo utilice. Para
desbloquear el fichero se emplea unlock(). Estas
funciones permiten controlar los ficheros en redes
locales.
La zona del fichero que se protege viene dada por el
desplazamiento y el n£mero de caracteres. Si no hay
errores, devuelve 0; en caso contrario devuelve -1.
lseek()
Sintaxis: long lseek(int num, long desp, int pos);
Declarado: io.h
Funci¢n: Mueve el puntero de L/E asociado con el fichero
abierto con el numero num, a una nueva localizaci¢n
desplazada desp bytes de pos. pos puede ser:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Pos ³Valor ³ Definici¢n º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SEEK_SET ³ 0 ³ Principio del fichero º
º SEEK_CUR ³ 1 ³ Posici¢n actual º
º SEEK_END ³ 2 ³ Final del fichero º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
En caso de error, esta funci¢n devuelve -1.
int open(char *nomfich, int modo, int acceso);
int _open(char *nomfich, int modo);
Declarado: io.h
Funci¢n: Se emplea para abrir un fichero y obtener el
descriptor asociado. El argumento modo es una de las
siguientes macros:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍ»
º MODO ³ EFECTO ³ VALOR º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄĶ
º O_RDONLY ³ s¢lo lectura ³ 1 º
º O_WRONLY ³ s¢lo escritura ³ 2 º
º O_RDWR ³ lectura y escritura ³ 3 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍͼ
El argumento acceso se utiliza para mantener la
compatibilidad con el entorno UNIX.
La funci¢n open() devuelve un valor positivo si no hay
errores; en caso contrario, devuelve -1. El valor
positivo ser el descriptor asociado al fichero.
Los modos se pueden complementar con otras macros:
O_TEXT Fichero de texto.
Se realizan las conversiones siguientes:
al leer 0x0d0a -> 0x0a
al escribir 0x0a->0x0d0a
el fin fichero es 0x1a (CTRL+Z)
O_BINARY Fichero binario. no hay conversiones
O_APPEND Escritura a final de fichero
O_CREAT Si no existe, se crea. en este caso se
puede emplear el argumento de acceso con
los valores siguientes:
S_IREAD S¢lo lectura
S_IWRITE S¢lo escritura
S_IWRITE|S_IREAD
O_TRUNC Vacia un fichero ya existente
_read()
Sintaxis: int _read(int num, void *buf, unsigned c);
Declarado: io.h
Funci¢n: Intenta leer c bytes del fichero cuyo n£mero asociado
es num, y almacenarlos en buf.
Esta funci¢n devuelve el n£mero de bytes le¡dos, en caso
de encontrar el final de fichero devuelve 0, un valor -1
indica error.
Para un fichero abierto en modo de texto, _read no
traslada los retornos de carro.
Esta funci¢n utiliza el sistema de llamadas directas del
DOS.
read()
Sintaxis: int read(int num, void *buf, unsigned c);
Declarado: io.h
Funci¢n: Intenta leer c bytes del fichero cuyo n£mero asociado
es num, y almacenarlos en buf.
Esta funci¢n devuelve el n£mero de bytes le¡dos, en caso
de encontrar el final de fichero devuelve 0, un valor -1
indica error.
Para un fichero abierto en modo de texto, _read si
traslada los retornos de carro.
setftime()
Sintaxis: int setftime(int handle, struct ftime *lista);
Declarado: io.h
Funci¢n: Carga la fecha y hora del fichero de disco asociado
con handle en la estructura lista de tipo ftime, que es
como sigue:
struct ftime {
unsigned ft_tsec:5; /* dos segundos */
unsigned ft_min:6; /* minutos */
unsigned ft_hour:5; /* horas */
unsigned ft_day:5; /* d¡a */
unsigned ft_month:4; /* mes */
unsigned ft_year:7 /* a¤o */
};
En caso de error, esta funci¢n devuelve -1.
setmode()
Sintaxis: int setmode(int num, int modo);
Declarado: io.h
Funci¢n: Asigna el modo de texto (O_TEXT) o el modo binario
(O_BINARY) al fichero cuyo n£mero asociado es num.
Devuelve el modo anterior, -1 indica error.
sopen()
Sintaxis: int sopen(char *path, int acceso, int shflag,
int modo);
Declarado: io.h
Funci¢n: Abre el fichero especificado por path y lo prepara a
modo compartido para lectura y/o escritura. Para m s
informaci¢n leer el manual.
tell()
Sintaxis: long tell(int num);
Declarado: io.h
Funci¢n: Devuelve la posici¢n actual del puntero de L/E,
dentro del fichero cuyo numero asociado es num. Esta
posici¢n es relativa al principio.
unlink()
Sintaxis: int unlink(const char *path);
Declarado: dos.h, io.h, stdio.h
Funci¢n: Borra el fichero especificado por path devolviendo 0.
un valor -1 indica error.
unlock()
Sintaxis: int unlock(int handle, long offset, long
length);
Declarado: io.h
Funci¢n: Provee de un interface con el DOS 3.x para utilizar
un fichero en modo compartido.
Elimina el bloqueo hecho con la llamada lock().
_write()
Sintaxis: int _write(int fd, void *buf, unsigned len);
Declarado: io.h
Funci¢n: Escribe len bytes, almacenados en buf, en el fichero
cuyo n£mero asociado es fd. Retorna el n£mero de bytes
escritos, -1 indica error.
Esta funci¢n es exclusiva del DOS.
write()
Sintaxis: int write(int fd, void *buf, unsigned len);
Declarado: io.h
Funci¢n: Escribe len bytes, almacenados en buf, en el fichero
cuyo n£mero asociado es fd. Retorna el n£mero de bytes
escritos, -1 indica error.
Esta funci¢n es compatible UNIX.
LIBRERIAS DE TURBO C - limits.h
En esta libreria est n definidas las siguientes
constantes:
CHAR_BIT N§ de bits en un char
CHAR_MAX M ximo valor char
CHAR_MIN M¡nimo valor char
INT_MAX M ximo valor int
INT_MIN M¡nimo valor int
LONG_MAX M ximo valor long
LONG_MIN M¡nimo valor long
SCHAR_MAX M ximo valor char
SCHAR_MIN M¡nimo valor char
SHRT_MAX M¡nimo valor short
SHRT_MIN M¡nimo valor short
UCHAR_MAX M ximo valor unsigned char
UINT_MAX M ximo valor unsigned int
ULONG_MAX M ximo valor unsigned long
USHRT_MAX M ximo valor unsigned short
LIBRERIAS DE TURBO C - math.h
abs()
Sintaxis: int abs(int x);
Funci¢n: Devuelve el valor absoluto del entero x que va como
argumento.
acos()
Sintaxis: double acos(double x);
Declarado: math.h
Funci¢n: Devuelve el arco coseno del valor introducido como
par metro, este argumento debe estar comprendido entre -1
y 1 de lo contrario la funci¢n devolver 0 y pondr errno
a EDOM Domain error.
asin()
Sintaxis: double asin(double x);
Declarado: math.h
Funci¢n: Devuelve el arco seno del argumento. Este argumento
debe tener un valor comprendido entre -1 y 1. En caso de
error la funci¢n devuelve 0 y pone errno a EDOM Domain
error. Esta funci¢n devuelve un valor comprendido entre
el rango -pi/2 a pi/2.
atan()
Sintaxis: double atan(double x);
Declarado: math.h
Funci¢n: Calcula el arco tangente del argumento. Devuelve un
valor comprendido entre -pi/2 y pi/2.
atan2()
Sintaxis: double atan2(double x, double y);
Declarado: math.h
Funci¢n: Devuelve el arco tangente de y/x.
atof()
Sintaxis: double atof(char *s);
Declarado: math.h, stdlib.h
Funci¢n: Convierte la cadena apuntada por s en un double.
cabs()
Sintaxis: double cabs(struct complex z);
Declarado: math.h
Funci¢n: Calcula el valor absoluto del n£mero complejo z, este
es una estructura tipo complex definida en math.h de la
siguiente forma:
struct complex {
double x, y;
};
Donde x es la parte real e y la imaginaria.
ceil()
Sintaxis: double ceil(double x);
Declarado: math.h
Funci¢n: Devuelve como resultado un valor double, que
representa al entero m s peque¤o que es mayor o igual a
x.
cos()
Sintaxis: double cos(double x);
Declarado: math.h
Funci¢n: Calcula el coseno del argumento. El ngulo debe estar
en radianes.
cosh()
Sintaxis: double cosh(double x);
Declarado: math.h
Funci¢n: Calcula el coseno hiperb¢lico del argumento.
exp()
Sintaxis: double exp(double x);
Declarado: math.h
Funci¢n: Calcula el valor de e elevado a x y devuelve su
valor.
fabs()
Sintaxis: double fabs(double x);
Declarado: math.h
Funci¢n: Retorna el valor absoluto de x.
floor()
Sintaxis: double floor(double x);
Declarado: math.h
Funci¢n: Da como resultado un valor double que representa el
entero m s grande que es menor o igual a x.
fmod()
Sintaxis: double fmod(double x, double y);
Declarado: math.h
Funci¢n: Devuelve el resto de x/y.
frexp()
Sintaxis: double frexp(double x, int *exponente);
Declarado: math.h
Funci¢n: Calcula la mantisa que elevada a exponente sea igual
a x y devuelve su valor.
hypot()
Sintaxis: double hypot(double x, double y);
Declarado: math.h
Funci¢n: Dados los catetos calcula la hipotenusa.
labs()
Sintaxis: long int labs(long int x);
Declarado: math.h
Funci¢n: Devuelve el valor absoluto del long x.
ldexp()
Sintaxis: double ldexp(double x, int exp);
Declarado: math.h
Funci¢n: Calcula Xù2exp y devuelve su resultado.
log()
Sintaxis: double log(double x);
Declarado: math.h
Funci¢n: Devuelve el logaritmo natural de x.
log10()
Sintaxis: double log10(double x);
Declarado: math.h
Funci¢n: Devuelve el logaritmo en base 10 de x.
_matherr()
Sintaxis: double _matherr(_mexcep why, char *fun, double
*arg1p, double *arg2p, double retval);
Declarado: math.h
Funci¢n: Se utiliza para enfocar el error en punto flotante.
matherr()
Sintaxis: int matherr(struct exception *e);
Declarado: math.h
Funci¢n: Es llamado por la rutina _matherr para numerar el
error generado en la librer¡a matem tica.
modf()
Sintaxis: double modf(double x, double *i);
Declarado: math.h
Funci¢n: Descompone x en sus partes entera y fraccionaria.
Devuelve la parte fraccionaria y sit£a la parte entera en
la variable apuntada por i.
poly()
Sintaxis: double poly(double x, int grad, double coef[]);
Declarado: math.h
Funci¢n: Genera un polinomio in x, de grado grad y
coeficientes coef[0], coef[1], ..., coef[grad]. Por
ejemplo, si grad=4 el polinomio generado ser¡a:
coef[4]x4 + coef[3]x3 + coef[2]x2 + coef[1]x + coef[0]
Esta funci¢n devolver el valor del polinomio para el
valor dado de x.
pow()
Sintaxis: double pow(double x, double y);
Declarado: math.h
Funci¢n: Devuelve el valor de xy.
pow10()
Sintaxis: double pow10(double p);
Declarado: math.h
Funci¢n: Devuelve el valor de 10p.
sin()
Sintaxis: double sin(double x);
Declarado: math.h
Funci¢n: Esta funci¢n calcula el seno de x, x debe estar
especificado en radianes.
sinh()
Sintaxis: double sinh(double x);
Declarado: math.h
Funci¢n: Esta funci¢n calcula el seno hiperb¢lico de x.
sqrt()
Sintaxis: double sqrt(double x);
Declarado: math.h
Funci¢n: Calcula la ra¡z cuadrada positiva de x.
tan()
Sintaxis: double tan(double x);
Declarado: math.h
Funci¢n: Devuelve la tangente del ngulo x expresado en
radianes.
tanh()
Sintaxis: double tanh(double x);
Declarado: math.h
Funci¢n: Devuelve la tangente hiperb¢lica del n£mero real x.
LIBRERIAS DE TURBO C - mem.h
memccpy()
Sintaxis: void *memccpy(void *dest, const void *src, int
ch, size_t n);
Declarado: string.h, mem.h
Funci¢n: Copia un bloque de n bytes desde scr en dest. La
copia termina cuando se han pasada n byts, o cuando se ha
copiado el caracter ch.
memchr()
Sintaxis: void *memchr(const void *s, int c, size_t n);
Declarado: string.h, mem.h
Funci¢n: Busca en los primeros n bytes del bloque apuntado por
s el car cter c. Devuelve un puntero a la primera
aparici¢n de c, o un puntero nulo si no aparece.
memcmp()
Sintaxis: int memcmp(const void *s1, const void *s2,
size_t n);
Declarado: string.h, mem.h
Funci¢n: Compara los n primeros bytes de los bloques s1 y s2
devolviendo < 0 si s1 < s2, = 0 si s1 = s2, > 0 si s1 >
s2.
memcpy()
Sintaxis: void *memcpy(void *hacia, void *desde, size_t
cuenta);
Declarado: string.h, mem.h
Funci¢n: Copia cuenta caracteres del array apuntado por desde
en array apuntado por hacia. La funci¢n devuelve un
puntero a hacia.
memicmp()
Sintaxis: int memicmp(const void *s1, const void *s2,
size_t n);
Declarado: string.h, mem.h
Funci¢n: Compara los n primeros bytes de las cadenas de
caracteres s1 y s2 ignorando may£sculas y min£sculas.
Devuelve:
< 0 si s1 < s2.
= 0 si s1 = s2
> 0 si s1 > s2.
memmove()
Sintaxis: void *memmove(void *dest, const void *scr,
size_t n);
Declarado: string.h, mem.h
Funci¢n: Copia un bloque de n bytes desde src en dest.
Devuelve un puntero a dest. Si las matrices se solapan,
la copia se realiza correctamente, poniendo el contenido
en destino y modificando origen.
memset()
Sintaxis: void *memset(void *buf, int ch, size_t cuenta);
Declarado: string.h, mem.h
Funci¢n: Copia el byte menos significativo de ch en los
primeros cuenta caracteres del array apuntado por buf,
devolviendo un puntero a buf.
movedata()
Sintaxis: void movedata(unsigned srcseg, unsigned srcoff,
unsigned dstseg, unsigned dstoff, size_t n);
Declarado: string.h, mem.h
Funci¢n: Copia n bytes desde (srcseg:srcoff) a
(dstseg:dstoff).
movmem()
Sintaxis: void movmem(void *src, void *dest, unsigned
tama¤o);
Declarado: mem.h
Funci¢n: Copia un bloque de tama¤o bytes desde src a dest.
setmem()
Sintaxis: void setmem(void *dest, unsigned longitud, char
valor);
Declarado: mem.h
Funci¢n: Rellena un bloque de longitud bytes, apuntado por
dest, por el byte valor.
LIBRERIAS DE TURBO C - process.h
exec..()
Sintaxis: int execl(path, arg0, arg1, ... , NULL);
int execle(path, arg0, arg1, ... , NULL, envp);
int execlp(path, arg0, arg1, ... , NULL);
int execlpe(path, arg0, arg1, ... , NULL, envp);
int execv(path, argv);
int execve(path, argv, envp);
int execvp(path, argv);
int execvee(path, argv, envp);
char *path;
char *arg0, *arg1, ...;
char *argv[];
char *envp[];
Declarado: process.h
Funci¢n: Esta funci¢n carga un nuevo proceso o programa y lo
ejecuta. A continuaci¢n del nombre de la funci¢n exec se
a¤ade unas letras para especificar una determinada
variaci¢n:
Letra Variaci¢n
---------------------------------------------------------
p Utiliza la variable PATH para encontrar el
fichero a ejecutar.
l Lista separada de argumentos.
El argumento arg0 es normalmente un puntero a
path.
v Pasa al proceso a ejecutar un array de punteros
(argv) a los argumentos. El argumento argv[0]
es normalmente un puntero a path.
e Pasa al proceso a ejecutar un array de punteros
(envp) a las variables que permiten alterar el
entorno del proceso.
Cada elemento de envp, excepto el elemento
final, apunta a una cadena de la forma:
NOMBRE = valor
Donde NOMBRE es el nombre de la variable y
valor es la cadena de caracteres asociada.
El £ltimo elemento es NULL.
La funci¢n exec devuelve -1 si ocurre un error y la
variable errno es puesta al valor correspondiente.
_exit()
Sintaxis: void _exit(int status);
Declarado: process.h, stdlib.h
Funci¢n: Termina le ejecuci¢n de un programa cerrando todos
los ficheros. No es compatible ANSY.
exit()
Esta funci¢n es exactamente igual a la anterior y adem s es
compatible ANSY.
spawn...
Sintaxis:
int spawnl(modo, path, arg0, arg1,.. argn, NULL);
int spawnle(modo, path, arg0, arg1,.. argn, NULL, envp);
int spawnlp(modo, path, arg0, arg1,.. argn, NULL);
int spawnlpe(modo, path, arg0, arg1,.. argn, NULL, envp);
int spawnv(modo, path, argv);
int spawnve(modo, path, argv, envp);
int spawnvp(modo, path, argv);
int spawnvpe(modo, path, argv, envp);
Declarado: process.h
Funci¢n: Carga un proceso nuevo y lo ejecuta. La diferencia
con exec es el modo en el que se ejecuta el proceso
padre, indicado por el argumento modo. Lo expuesto para
exec es v lido tambi‚n para spawn.
int modo; modo de ejecuci¢n para proceso padre
char *path; nombre de fichero a ser ejecutado
char *arg0..*argn; lista de punteros a argumentos
char *argv[]; array de punteros a argumentos
char *envp[]; array de punteros a variables del
entorno al proceso.
El argumento modo est definido en process.h y puede ser:
Valor Significado
---------------------------------------------------------
P_WAIT Suspende el proceso padre hasta que
finalice la ejecuci¢n del proceso llamado
P_NOWAIT Continua la ejecuci¢n del proceso padre,
concurrentemente con el proceso llamado
(v lido solamente en modo protegido):
P_NOWAITO Continua la ejecuci¢n del proceso padre,
concurrentemente con el proceso llamado e
ignora las llamadas wait o cwait (v lido
solamente en modo protegido).
P_OVERLAY Tiene el mismo efecto que las llamadas
efectuadas con la funci¢n exec (destruye
el proceso padre).
El valor devuelto por la funci¢n spawn s¡ncrona (P_WAIT),
es el estado de salida del proceso llamado (proceso hijo)
El valor devuelto por la funci¢n spawn s¡ncrona
(P_NOWAIT, P_NOWAITO), es la identificaci¢n ID del
proceso. Para obtener el c¢digo de salida, se debe llamar
a la funci¢n wait o cwait y especificar ID. Si ocurre
error el valor devuelto es -1 y la variable errno es
puesta al valor correspondiente.
system()
Sintaxis: int system(const char *comando);
Declarado: stdlib.h, process.h
Funci¢n: Invoca al command.com y ejecuta comando.
LIBRERIAS DE TURBO C - setjmp.h
longjmp()
Sintaxis: void longjmp(jmp_buf envbuf, int val);
Declarado: setjmp.h
Funci¢n: Da lugar a que la ejecuci¢n del programa se retome en
el punto en que se llamado por £ltima vez a setjmp().
Estas dos funciones son la forma en que C permite saltar
entre funciones.
La funci¢n longjmp() opera inicializando la pila ya
descrita por envbuf, que debe haber sido activada en una
llamada anterior a setjmp(). Esto da lugar a que la
ejecuci¢n del programa se retome en la sentencia
siguiente al setjmp() que la llam¢. En otras palabras, el
ordenador es "enga¤ado" haci‚ndole pensar que nunca dej¢
la funci¢n que llam¢ a setjmp(). (Para utilizar una
explicaci¢n m s o menos gr fica, longjmp() "se desv¡a" en
el tiempo y en el espacio de la memoria a un punto
anterior del programa sin tener que hacer el proceso
normal de return.)
El buffer envbuf es de tipo jmp_buf, que est definido en
setjmp.h. El buffer debe haber sido activado a trav‚s de
una llamada a setjmp(), anterior a la llamada a
longjmp().
El valor de val se transforma en el valor de vuelta a
setjmp() y puede preguntarse por ‚l para determinar de
d¢nde viene longjmp(). El £nico valor no permitido es 0.
Es importante comprender que longjmp() se debe llamar
antes de que la funci¢n que llam¢ a setjmp() vuelva. Si
no, el resultado queda indefinido.
setjmp()
Sintaxis: int setjmp(jmp_buf envbuf);
Declarado: setjmp.h
Funci¢n: Guarda el contenido de la pila del sistema en el
buffer envbuf para ser utilizado m s tarde por longjmp().
Esta funci¢n devuelve 0 despu‚s de la llamada. Sin
embargo longjmp() pasa un argumento a setjmp() cuando se
ejecuta, y es este valor (siempre distinto de cero) el
valor de setjmp() despu‚s de la llamada a longjmp().
LIBRERIAS DE TURBO C - share.h
Aqui est n definidos los modos de apertura de sopen para
ficheros compartidos, y son:
SH_COMPAT Modo compatible
SH_DENYRW Denegado acceso de escritura
SH_DENYRD Denegado acceso de lectura
SH_DENYNONE Acceso de lectura y escritura
SH_DENYNO Igual que el anterior LIBRERIAS DE TURBO C - signal.h
raise()
Sintaxis: int raise(int marca);
Declarado: signal.h
Funci¢n: Env¡a la se¤al especificada por marca al programa en
ejecuci¢n. Esto supone un entorno multitarea. Devuelve 0
si tiene ‚xito; en otro caso devuelve un valor distinto
de 0. Los posibles valores de marca son:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º NOMBRE ³ SIGNIFICADO º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SIGABRT ³ Terminaci¢n anormal del programa º
º SIGFPE ³ Error en operaci¢n de punto flotante º
º SIGILL ³ Instrucci¢n ilegal º
º SIGINT ³ Interrupci¢n del CTRL+BREAK º
º SIGSEGV ³ Acceso inv lido º
º SIGTERM ³ Petici¢n de finalizaci¢n de programa º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
El programa puede definir un handler particular para
tratar estos errores (a trav‚s de la funci¢n signal()).
Devuelve 0 si no hay errores, en caso contrario, devuelve
un valor diferente de 0.
signal()
Sintaxis: void (*signal(int marca, void (*func)(int
sig[,int subcode])))(int);
Declarado: signal.h
Funci¢n: Define la funci¢n func que se ejecutar si se recibe
la se¤al especificada por marca. El valor de marca puede
ser una de las siguientes macros.
SIGABRT Ejecuci¢n abortada
SIGFPE Detecta errores aritm‚ticos
SIGILL Detecta una funci¢n no v lida
SIGINT Detecta un aborto del sistema
SIGSEGV Detecta acceso incorrecto a memoria
SIGTERM Detecta una petici¢n de terminaci¢n
externa.
El valor para func debe ser la direcci¢n de una funci¢n o
una de las siguientes macros:
SIG_DFL Utilizar manipulador de se¤ales impl¡cito
SIG_IGN Ignorar la se¤al.
SIG_ERR Error retornado desde una se¤al.
Si se utiliza la direcci¢n de una funci¢n se ejecuta la
funci¢n especificada.
LIBRERIAS DE TURBO C - stdarg.h
va_...
Sintaxis: void va_start(va_list param, ult_parm);
type va_arg(va_list param, tipo);
void va_end(va_list param);
Declarado: stdarg.h
Funci¢n: Las macros va_arg(), va_start() trabajan con la
funci¢n va_end() que permite pasar un n£mero variable de
argumentos a la funci¢n. El tipo va_list est definido en
stdarg.h.
El procedimiento general para crear una funci¢n que pueda
tomar un n£mero variable de argumentos es la siguiente.
La funci¢n debe tener al menos un par metro previo a la
lista de par metros variables, pero puede tener m s.
Antes de que cualquiera de los par metros de longitud
variable puedan ser utilizados, el puntero del argumento
param debe estar inicializado por medio de una llamada a
va_start(). Despu‚s de esto, los par metros se devuelven
a trav‚s de llamadas a va_arg(), con tipo siendo el tipo
del siguiente par metro. Finalmente, una vez que todos
los par metros han sido le¡dos y antes de volver de la
funci¢n, se debe hacer una llamada a va_end() para
asegurar que la pila est reconstruida. Si no se llama a
va_end() es muy com£n que el programa aborte.
LIBRERIAS DE TURBO C - stddef.h
En este fichero est n definidos:
errno
NULL
ptrdiff_t
size_t LIBRERIAS DE TURBO C - stdio.h
assert()
Sintaxis: void assert(int test);
Declarado: assert.h stdio.h
Funci¢n: assert es un macro que se expande mediante un if, si
el test evaluado es cero, assert pone un mensaje en
stderr y aborta el programa.
clearerr()
Sintaxis: void clearerr(FILE *pf);
Declarado: stdio.h
Funci¢n: Desactiva el indicador de error y el indicador de fin
de fichero (EOF) para el fichero pf poni‚ndolo a 0.
fclose()
Sintaxis: int fclose(FILE *stream);
Declarado: stdio.h
Funci¢n: Cierra el fichero asociado con stream.
fcloseall()
Sintaxis: int fcloseall(void);
Declarado: stdio.h
Funci¢n: Cierra todos los ficheros abiertos excepto stdin,
stdout, stdprn, stderr y stdaux.
fdopen()
Sintaxis: FILE *fdopen(int num, char *acceso);
Declarado: stdio.h
Funci¢n: Permite utilizar por rutinas estandard, un fichero
identificado por num, abierto por rutinas a nivel de
sistema. El argumento acceso puede ser:
"r" Abrir para leer
"w" Abrir para escribir.
"a" Abrir para a¤adir al final.
"r+" Abrir para leer y escribir. Debe existir.
"w+" Abrir para leer y escribir. si no existe se
crea, si existe se destruye y se crea uno
nuevo.
"a+" Abrir para leer y a¤adir. Si no existe se crea.
feof()
Sintaxis: int feof(FILE *pf);
Declarado: stdio.h
Funci¢n: Detecta el final de fichero, retornando un valor
distinto de cero si ha sido detectado el indicador de fin
de fichero en la £ltima operaci¢n de lectura, o 0 si no
ha sido detectado.
ferror()
Sintaxis: int ferror(FILE *pf);
Declarado: stdio.h
Funci¢n: Verifica si ha ocurrido un error en una operaci¢n con
ficheros. Cuando ocurre un error, el indicador de error
para ese fichero se pone activo y permanece en este
estado hasta que la funci¢n clearerr sea ejecutada. Esta
funci¢n devuelve un 0 si no ha ocurrido un error y un
valor distinto de 0 en caso contrario.
fflush()
Sintaxis: int fflush(FILE *pf);
Declarado: stdio.h
Funci¢n: Escribe en el fichero apuntado por pf, el contenido
del buffer asociado al mismo. Si el fichero en lugar de
estar abierto para escribir est abierto para leer.
fflush borra el contenido del buffer.
fgetc()
Sintaxis: int fgetc(FILE *pf);
Declarado: stdio.h
Funci¢n: Lee un car cter del fichero apuntado por pf, de la
posici¢n indicada por el puntero de L/E. Si ocurre un
error o detecta el final de fichero devuelve EOF.
fgetchar()
Sintaxis: int fgetchar(void);
Declarado: stdio.h
Funci¢n: Devuelve el siguiente car cter desde stdin. En caso
de fin de fichero o de error, devuelve EOF.
fgetpos()
Sintaxis: int fgetpos(FILE *pf, fpos_t *pos);
Declarado: stdio.h
Funci¢n: Pone el puntero de L/E correspondiente al fichero
apuntado por pf, en la posici¢n indicada por pos, la cual
ha sido previamente obtenida por la funci¢n fgetpos. Esta
funci¢n desactiva el indicador de fin de fichero. Si la
acci¢n se lleva correctamente, la funci¢n devuelve 0, en
caso contrario devuelve otro valor.
fgets()
Sintaxis: char *fgets(char *s, int n, FILE *pf);
Declarado: stdio.h
Funci¢n: Lee una cadena de caracteres, s, del fichero apuntado
por pf, a¤adi‚ndole al final NULL. Se entiende por s
desde la posici¢n actual dentro del fichero, hasta el
primer car cter '\n' incluido este, hasta el final del
fichero, o hasta que el numero de caracteres sea igual a
n-1.
fileno()
Sintaxis: int fileno(FILE *pf);
Declarado: stdio.h
Funci¢n: Esta funci¢n devuelve el n£mero asociado a pf.
flushall()
Sintaxis: int flushall(void);
Declarado: stdio.h
Funci¢n: Limpia todos los buffers asociados con dispositivos
de entrada, y escribe el contenido de los buffers en sus
correspondientes dispositivos de salida.
fopen()
Sintaxis: FILE *fopen(char *path, char *acceso);
Declarado: stdio.h
Funci¢n: Abre el fichero especificado por path en el modo
indicado en acceso.
acceso puede ser:
"r" Abrir para leer. Si no existe o no se encuentra se
obtiene un error.
"w" Abrir para escribir. Si el fichero no existe se crea
y si existe su contenido se destruye para ser creado
de nuevo.
"a" Abrir para a¤adir informaci¢n al final del fichero.
Si no existe, se crea.
"r+" Abrir para leer y escribir. El fichero debe existir.
"w+" Abrir para leer y escribir. Si no existe se crea, y
si existe se destruye para ser creado de nuevo.
"a+" Abrir para leer y a¤adir. Si no existe, se crea.
fprintf()
Sintaxis: int fprintf(FILE *pf, char *format[, arg, ..]);
Declarado: stdio.h
Funci¢n: Funciona exactamente igual que printf, con la £nica
diferencia de que la cadena es enviada al fichero
asociado a pf.
fputc()
Sintaxis: int fputc(int c, FILE *fp);
Declarado: stdio.h
Funci¢n: Esta funci¢n escribe un car cter c en el fichero
apuntado por pf, en la posici¢n indicada por el puntero
de L/E.
fputchar()
Sintaxis: int fputchar(int c);
Declarado: stdio.h
Funci¢n: Manda el car cter c a stdout. Es equivalente a
fputc(c, stdout).
fputs()
Sintaxis: int fputs(char *s, FILE *pf);
Declarado: stdio.h
Funci¢n: Copia la cadena s, en el fichero apuntado por pf. La
terminaci¢n '\0' no es copiada.
fread()
Sintaxis: size_t fread(void *buffer, size_t n, size_t c,
FILE *pf);
Declarado: stdio.h
Funci¢n: Lee hasta c elementos de longitud n bytes, del
fichero apuntado por pf, y los almacena en buffer.
freopen()
Sintaxis: FILE *freopen(char *path, char *acceso, FILE
*pf);
Declarado: stdio.h
Funci¢n: Cierra el fichero asociado actualmente con pf y
reasigna pf al fichero identificado por path. Esta
funci¢n es utilizada para redireccionar los ficheros
standard stdin, stdout, stderr, stdaux y stdprn a
ficheros especificados por el usuario. La descripci¢n
para el argumento acceso, es la misma que la dada en la
funci¢n fopen.
fscanf()
Sintaxis: int fscanf(FILE *pf, char *formato[ arg, ...]);
Declarado: stdio.h
Funci¢n: Lee los argumentos arg, con el formato especificado,
del fichero apuntado por pf.
fseek()
Sintaxis: int fseek(FILE *pf, long desp, int pos);
Declarado: stdio.h
Funci¢n: Mueve el puntero de L/E asociado con el fichero
apuntado por pf a una nueva localizaci¢n desplazada desp
bytes de la posici¢n dada por el argumento pos.
Pos Definici¢n
--------------------------------------------------
SEEK_SET Principio del fichero
SEEK_CUR Posici¢n actual del puntero de L/E
SEEK_END Final del fichero
En modo de texto las operaciones con la funci¢n fseek
ser n buenas con un desplazamiento 0 (ir al principio o
final) o con un desplazamiento devuelto con la funci¢n
ftell, a partir del comienzo del fichero.
Esta funci¢n devuelve 0 si no se ha producido error y un
valor distinto de 0 en caso contrario.
fsetpos()
Sintaxis: int fsetpos(FILE *pf, const fpos_t *pos);
Declarado: stdio.h
Funci¢n: Pone el puntero de L/E correspondiente al fichero pf,
en la posici¢n indicada por pos, la cual ha sido
previamente obtenida por la funci¢n fgetpos. Esta funci¢n
desactiva el indicador de fin de fichero. Devuelve 0 si
no hay error y un valor distinto de 0 en caso contrario.
ftell()
Sintaxis: long ftell(FILE *pf);
Declarado: stdio.h
Funci¢n: Da como resultado la posici¢n actual del puntero de
L/E, relativa al principio del fichero apuntado por pf.
En caso de error devuelve -1.
fwrite()
Sintaxis: size_t fwrite(const void *buffer, size_t n,
size_t c, FILE *pf);
Declarado: stdio.h
Funci¢n: Escribe hasta c elementos de longitud n bytes,
almacenados en buffer, en el fichero apuntado por pf.
Si no hay error, esta funci¢n devuelve el n£mero de
campos escritos.
getc()
Sintaxis: int getc(FILE *pf);
Declarado: stdio.h
Funci¢n: Lee un car cter del fichero apuntado por pf, en caso
de error o de fin fichero devuelve EOF.
getchar()
Sintaxis: int getchar(void);
Declarado: stdio.h
Funci¢n: Lee un car cter de la entrada estandard stdin y
avanza la posici¢n de lectura al siguiente car cter a
leer.
gets()
Sintaxis: char *gets(char *s);
Declarado: stdio.h
Funci¢n: Lee una l¡nea desde la entrada estandard stdin, y la
almacena en s.
getw()
Sintaxis: int getw(FILE *pf);
Declarado: stdio.h
Funci¢n: Lee el siguiente valor binario de tipo int, del
fichero apuntado por pf y avanza el puntero de L/E al
siguiente valor no le¡do.
perror()
Sintaxis: void perror(const char *s);
Declarado: stdio.h
Funci¢n: Escribe en stderr, el mensaje dado por s seguido por
dos puntos, el mensaje de error dado por el sistema y un
car cter NL.
printf()
Sintaxis: int printf(const char *formato[, arg, ...]);
Declarado: stdio.h
Funci¢n: Escribe con formato, una serie de caracteres o un
valor en la salida estandard, stdout. Esta funci¢n
devuelve un valor entero igual al n£mero de caracteres
escrito.
formato especifica como va a ser la salida. arg
representa el valor o valores a escribir.
Una especificaci¢n de formato est compuesta por:
%[flags][ancho][.precisi¢n][{F/N/h/l/L}]tipo
flags significado
---------------------------------------------------------
- Justifica el resultado a la izda, dentro del
ancho especificado.
+ Antepone el signo + (m s) 0 - (menos) al valor
de salida.
# Cuando se utiliza con la especificaci¢n de
formato o, x, o X, antepone al valor de salida
0, 0x, o 0X.
Cuando se utiliza con e, E, o f, fuerza a que
el valor de salida contenga un punto decimal en
todos los casos.
Cuando se utiliza con g, o G, fuerza a que el
valor de salida contenga un punto decimal en
todos los casos y evita que los ceros
arrastrados sean truncados.
Se ignora con c, d, i, u, o s.
---------------------------------------------------------
ancho M¡nimo n£mero de posiciones para la salida. Si
el valor a escribir ocupa m s posiciones de las
especificadas, el ancho es incrementado en lo
necesario.
precisi¢n El significado depende del tipo de salida.
tipo significado (precisi¢n)
---------------------------------------------------------
d,i,u,o,x,X La precisi¢n especifica el m¡nimo n£mero de
d¡gitos que se tienen que escribir. Si es
necesario se rellena con ceros a la izda. Si el
valor excede de la precisi¢n, no se trunca.
e,E,f La precisi¢n especifica el n£mero de d¡gitos
que tienen que ser escritos despu‚s del punto
decimal. El valor es redondeado. Por defecto es
6.
g,G La precisi¢n especifica el m ximo n£mero de
d¡gitos significativos (6 por defecto) que se
tienen que escribir.
c La precisi¢n no tiene efecto.
s La precisi¢n especifica el m ximo n£mero de
caracteres a ser escritos. Los caracteres que
excedan se ignoran.
---------------------------------------------------------
F Utilizado en el modelo small para escribir
valores declarados far.
N Utilizado en los modelos medium y large para
escribir valores declarados near.
h Se utiliza como prefijo con los tipos d, i, o,
x, y X, para especificar que el argumento es
short int, o con u para especificar un short
unsigned int.
l Utilizado como prefijo con los tipos d, i, 0,
x, y X, para especificar que el argumento es
long int, o con u para especificar un long
unsigned int. Tambi‚n se utiliza con los tipos
e, E, f, g, y G para especificar un double en
lugar de un float.
L Se utiliza como prefijo con los tipos e, E, g,
y G, para especificar long double.
tipo es uno de los siguientes caracteres:
car cter salida
---------------------------------------------------------
d (int) enteros con signo en base 10.
i (int) enteros con signo en base 10.
u (int) enteros sin signo en base 10.
o (int) enteros sin signo en base 8.
x (int) enteros sin signo base 16 (01..abcdef).
X (int) enteros sin signo base 16 (01..ABCDEF).
f (double) valor con signo de forma:[-]dddd.dddd.
El n£mero de d¡gitos antes del punto decimal
depende de la magnitud del n£mero y el n£mero
de decimales de la precisi¢n.
e (double) valor con signo [-]d.dddde[ñ]ddd
E (double) valor con signo [-]d.ddddE[ñ]ddd
g (double) valor con signo con formato f o e (el
que sea m s compacto para el valor y precisi¢n
dados).
G Igual que g solo que introduce E en lugar de e
c (int) un solo car cter
s (cadena de caracteres) escribe una cadena de
caracteres hasta el primer car cter '\0'.
n (puntero a un entero). En el entero es
almacenado el n£mero de caracteres hasta ahora
en el buffer.
p Escribe una direcci¢n segmentada (xxxx.yyyy).
Si se especifica %Np se escribe solamente el
offset. %p espera un puntero a un valor far,
por ello bajo el modelo small, utilizar con el
argumento a escribir, el tipo cast: (tipo far
*)arg.
putc()
Sintaxis: int putc(int c, FILE *pf);
Declarado: stdio.h
Funci¢n: Escribe el car cter c en el fichero apuntado por pf.
puts()
Sintaxis: int puts(const char *s);
Declarado: stdio.h
Funci¢n: Escribe la cadena s en la salida estandard stdout y
a¤ade un car cter nueva l¡nea.
putw()
Sintaxis: int putw(int entd, FILE *pf);
Declarado: stdio.h
Funci¢n: Escribe el valor binario entd, en el fichero apuntado
por pf. Esta funci¢n devuelve el valor escrito o un EOF
si ocurre un error.
remove()
Sintaxis: int remove(char *nombre);
Declarado: stdio.h
Funci¢n: Borra el fichero especificado por nombre. Devuelve 0
si el archivo es borrado correctamente y -1 en caso
contrario.
rename()
Sintaxis: int rename(char *ant_nom, char *nue_nom);
Declarado: stdio.h
Funci¢n: Cambia el nombre del archivo ant_nom a nue_nom.
Devuelve 0 si tiene ‚xito y otro valor si hay error.
rewind()
Sintaxis: void rewind(FILE *pf);
Declarado: stdio.h
Funci¢n: Mueve el indicador de posici¢n del archivo pf al
principio del flujo.
scanf()
Sintaxis: int scanf(const char *formato[, arg]...);
Declarado: stdio.h
Funci¢n: Lee datos de la entrada estandard stdin.
formato est formado por caracteres en blanco('', \t,
\n), caracteres ordinarios, y especificaciones de
formato.
Cada argumento debe tener su correspondiente
especificaci¢n de formato y el mismo orden.
Si un car cter en la entrada standard no se corresponde
con la entrada especificada por el formato, se interrumpe
la entrada de datos.
arg es un puntero a la variable que se quiere leer.
Una especificaci¢n de formato est compuesta por:
%[*][ancho][{F/N}][{h/l}]tipo
* * a continuaci¢n de % suprime la asignaci¢n del
siguiente dato en la entrada
ancho M ximo n£mero de caracteres a leer, los
caracteres en exceso no son tenidos en cuenta.
F Indica que se quiere leer un valor apuntado por
una direcci¢n far.
N Indica que se quiere leer un valor apuntado por
una direcci¢n near.
h Se utiliza como prefijo de los tipos d, i, n,
o, y x, para especificar que el argumento es
short int, o con u para especificar un short
unsigned int.
lh Se utiliza como prefijo de los tipos d, i, n,
o, y x, para especificar que el argumento es
long int, o con u para especificar un long
unsigned int. Tambi‚n se utiliza con los tipos
e, f, y g para especificar un double.
tipo Determina si el dato de entrada es interpretado
como un car cter, como una cadena de caracteres
o como un n£mero. Puede se:
car tipo entrada
---------------------------------------------------------
d int entero con signo en base 10.
D long entero con signo en base 10.
i int entero en base 10, 16 u 8.
I long entero en base 10, 16 u 8.
u unsigned int entero sin signo en base 10.
U unsigned long entero sin signo en base 10.
o int entero sin signo en base 8.
O long entero sin signo en base 8.
x int entero sin signo en base 16.
X long entero sin signo en base 16.
f,e,E,g,G double valor con signo [-]d.dddde[ñ]ddd
c char un solo car cter
s char cadena de caracteres
n int en el entero es almacenado el n£mero
de caracteres le¡dos del buffer o
fichero.
p puntero valor de la forma xxxx.yyyy.
setbuf()
Sintaxis: void setbuf(FILE *pf, char *buf);
Declarado: stdio.h
Funci¢n: Permite al usuario controlar la memoria intermedia
para el fichero apuntado por pf. Debe ejecutarse una vez
abierto el fichero y antes de cualquier operaci¢n de
lectura o escritura. buffer es un array de caracteres de
longitud BUFSIZ, constante definida en stdio.h.
setvbuf()
Sintaxis: int setvbuf(FILE *pf, char *buffer, int tipo,
size_t n);
Declarado: stdio.h
Funci¢n: Permite controlar la existencia o no de un buffer y
su tama¤o. La funci¢n setvbuf debe ejecutarse una vez
abierto el fichero y antes de cualquier operaci¢n de
lectura o escritura.
El argumento buffer es un array de caracteres de longitud
n bytes que desempe¤a la funci¢n de buffer o memoria
intermedia y el argumento tipo puede ser:
Tipo Significado
---------------------------------------------------------
_IOFBF Se utiliza buffer como memoria intermedia de
tama¤o n bytes
_IOLBF Igual que _IOFBF
_IONBF No se utiliza una memoria intermedia (buffer)
Esta funci¢n devuelve 0 si no ocurre error, y un valor
distinto en caso contrario.
sprintf()
Sintaxis: int sprintf(char *cadena, const char *formato[,
arg, ...]);
Declarado: stdio.h
Funci¢n: Escribe en salida formateada a cadena. Funciona igual
a printf.
sscanf()
Sintaxis: int sscanf(const char *buffer, char *format[,
direc,...]);
Declarado: stdio.h
Funci¢n: Carga las variables desde una cadena. Funciona igual
a scanf.
_strerror()
Sintaxis: char *_strerror(const char *s);
Declarado: string.h, stdio.h
Funci¢n: Devuelve un puntero a la cadena de mensaje de error.
La cadena de mensaje de error est construida en un
buffer est tico que es sobrescrito con cada llamada a
sterror.
tmpfile()
Sintaxis: FILE *tmpfile(void);
Declarado: stdio.h
Funci¢n: Crea un fichero temporal y devuelve un puntero a ese
fichero. Si el fichero no puede ser abierto se devuelve
un puntero nulo. Este fichero es autom ticamente borrado,
cuando el programa termina normalmente o cuando se borra
expl¡citamente con la funci¢n rmtmp. El fichero temporal
es abierto en modo w + b.
tmpnam()
Sintaxis: char *tmpnam(char *nombre);
Declarado: stdio.h
Funci¢n: Genera un £nico nombre de archivo y lo guarda en la
cadena apuntada por nombre. El objetivo de tmpnam() es
generar el nombre de un archivo temporal que sea
diferente de cualquier otro que exista en el directorio.
La funci¢n puede ser llamada hasta un n£mero de veces
igual a TMP_MAX, que est definido en stdio.h. Cada vez
se genera un nuevo nombre de archivo temporal.
En caso de error devuelve un puntero nulo.
ungetc()
Sintaxis: int ungetc(int ch, FILE *flujo);
Declarado: stdio.h
Funci¢n: Devuelve el car cter almacenado en ch al flujo de
entrada flujo. Este car cter es entonces devuelto por la
siguiente operaci¢n de lectura sobre el flujo. Una
llamada a fflush() o a fseek() deshace una operaci¢n
ungetc() y deshecha el car cter previamente devuelto al
flujo de entrada.
No se debe usar ungetc() sobre una marca EOF.
Una llamada a ungetc() borra la indicaci¢n de EOF
asociada al flujo especificado. El valor del indicador de
posici¢n del archivo para un flujo de texto queda
indefinido hasta que se lean los caracteres devueltos, en
cuyo caso queda como estuviera antes de la primera
llamada a ungetc(). Para los flujos binarios cada llamada
a ungetc() decrementa el indicador de posici¢n de
archivo.
El valor devuelto es igual a ch si ha tenido ‚xito y EOF
si ha fallado la operaci¢n.
unlink()
Sintaxis: int unlink(const char *path);
Declarado: dos.h, io.h, stdio.h
Funci¢n: Borra el fichero especificado por path devolviendo 0.
un valor -1 indica error.
vfprintf()
Sintaxis: int vfprintf(FILE *pf, const char *format,
va_list arglist);
Declarado: stdio.h
Funci¢n: Es equivalente a fprintf(). La diferencia se
encuentra en que la lista de argumentos se sustituye por
un puntero a una lista de argumentos. Este puntero est
definido en stdarg.h. Consulte la discusi¢n de las
funciones va_arg(), va_start() y va_end().
vfscanf()
Sintaxis: int vfscanf(FILE *pf, const char *format,
va_list arglist);
Declarado: stdio.h
Funci¢n: Es equivalente a fscanf(). La diferencia se encuentra
en que la lista de argumentos se sustituye por un puntero
a una lista de argumentos. Este puntero est definido en
stdarg.h. Consulte la discusi¢n de las funciones
va_arg(), va_start() y va_end().
vprintf()
Sintaxis: int vprintf(FILE *pf, const char *format,
va_list arglist);
Declarado: stdio.h
Funci¢n: Es equivalente a printf(). La diferencia se encuentra
en que la lista de argumentos se sustituye por un puntero
a una lista de argumentos. Este puntero est definido en
stdarg.h. Consulte la discusi¢n de las funciones
va_arg(), va_start() y va_end().
vscanf()
Sintaxis: int vscanf(FILE *pf, const char *format,
va_list arglist);
Declarado: stdio.h
Funci¢n: Es equivalente a scanf(). La diferencia se encuentra
en que la lista de argumentos se sustituye por un puntero
a una lista de argumentos. Este puntero est definido en
stdarg.h. Consulte la discusi¢n de las funciones
va_arg(), va_start() y va_end().
vsprintf()
Sintaxis: int vsprintf(FILE *pf, const char *format,
va_list arglist);
Declarado: stdio.h
Funci¢n: Es equivalente a sprintf(). La diferencia se
encuentra en que la lista de argumentos se sustituye por
un puntero a una lista de argumentos. Este puntero est
definido en stdarg.h. Consulte la discusi¢n de las
funciones va_arg(), va_start() y va_end().
vsscanf()
Sintaxis: int vsscanf(FILE *pf, const char *format,
va_list arglist);
Declarado: stdio.h
Funci¢n: Es equivalente a sscanf(). La diferencia se encuentra
en que la lista de argumentos se sustituye por un puntero
a una lista de argumentos. Este puntero est definido en
stdarg.h. Consulte la discusi¢n de las funciones
va_arg(), va_start() y va_end().
LIBRERIAS DE TURBO C - stdlib.h
abort()
Sintaxis: void abort(void);
Declarado: stdlib.h, process.h
Funci¢n: Termina el proceso. esta funci¢n escribe el mensaje
(Abnormal program termination) en stderr y aborta el
programa llamando a _exit con el c¢digo 3.
abs()
Sintaxis: int abs(int x);
Funci¢n: Devuelve el valor absoluto del entero x que va como
argumento.
atexit()
Sintaxis: int atexit(func);
Declarado: stdlib.h
Funci¢n: Esta funci¢n da lugar a que la funci¢n func sea
ejecutada cuando el programa termina normalmente. Si
existen varias llamadas consecutivas, se ejecutan desde
la £ltima a la primera.
atof()
Sintaxis: double atof(char *s);
Declarado: math.h, stdlib.h
Funci¢n: Convierte la cadena apuntada por s en un double.
atoi()
Sintaxis: int atoi(char *s);
Declarado: stdlib.h
Funci¢n: Convierte la cadena de caracteres apuntada por s en
un valor entero.
atol()
Sintaxis: long atol(char *s);
Declarado: stdlib.h
Funci¢n: Convierte la cadena de caracteres apuntada por s en
un valor entero largo.
bsearch()
Sintaxis: void *bsearch(const void *objeto, const void
*base, size_t num, size_t bytes,
int(*comparar)(elemento1, elemento2);
Declarado: stdlib.h
Funci¢n: Retorna un puntero a la primera ocurrencia de objeto
en el array apuntado por base. Si la b£squeda falla, la
funci¢n retorna NULL. num es el numero de elementos del
array. bytes es la longitud en bytes de un elemento.
comparar es un puntero a una funci¢n definida por el
usuario, que compara dos elementos y retorna un valor < 0
si el elemento1 0 si elemento1>elemento2 y
=0 si los dos elementos son iguales.
calloc()
Sintaxis: void *calloc(size_t n, size_t t);
Declarado: stdlib.h, alloc.h
Funci¢n: Esta funci¢n, asigna espacio de memoria para un array
de n elementos, de longitud t bytes cada uno de ellos.
div()
Sintaxis: dic_t div(int numer, int denom);
Declarado: stdlib.h
Funci¢n: Divide dos enteros devolviendo el cociente y el resto
en una estructura como la siguiente:
typedef struct {
int quot;
int rem;
} div_t;
ecvt()
Sintaxis: char *ecvt(double valor, int ndig, int *dec,
int *sign);
Declarado: stdlib.h
Funci¢n: Convierte valor en una cadena terminada en NULL de
ndig d¡gitos. A la variable dec se asigna la ubicaci¢n
del punto decimal con respecto al principio de la cadena,
sign ser 0 en caso de ser positivo y cualquier otro
valor si es negativo.
_exit()
Sintaxis: void _exit(int status);
Declarado: stdlib.h, process.h
Funci¢n: Termina le ejecuci¢n de un programa cerrando todos
los ficheros. No es compatible ANSY.
exit()
Esta funci¢n es exactamente igual a la anterior y adem s es
compatible ANSY.
fcvt()
Sintaxis: char *fcvt(double valor, int ndig, int *dec,
int *sign);
Declarado: stdlib.h
Funci¢n: Convierte un n£mero real a una cadena de caracteres.
La cadena ser terminada con NULL. Esta funci¢n devuelve
un puntero a la cadena de caracteres. valor es el n£mero
real a convertir. ndig n£mero de d¡gitos despu‚s del
punto decimal, si es necesario se a¤aden ceros. dec es un
puntero a un valor entero que especifica la posici¢n del
punto decimal. sign es un puntero a un valor 0 si el
n£mero es positivo, y distinto de 0 si negativo.
free()
Sintaxis: void free(void *block);
Declarado: stdlib.h, alloc.h
Funci¢n: Deja libre un bloque de memoria previamente asignado
con calloc, malloc o realloc.
gcvt()
Sintaxis: char *gcvt(double valor, int ndec, char *buf);
Declarado: stdlib.h
Funci¢n: Convierte valor en una cadena terminada en NULL y la
almacena en buf, teniendo ndec decimales.
getenv()
Sintaxis: char *getenv(const char *nombre);
Declarado: stdlib.h
Funci¢n: En caso de no haber error devuelve el valor asociado
con nombre, si nombre no est definido en el entorno,
devuelve una cadena bac¡a.
itoa()
Sintaxis: char *itoa(int valor, char *cadena, int base);
Declarado: stdlib.h
Funci¢n: Convierte un entero en cadena. valor es el n£mero
entero a convertir, cadena es la cadena de caracteres
resultante, base es la base (2 - 36) en la que viene
especificado el valor. Si la base es 10 y el n£mero
negativo, el primer car cter almacenado en la cadena ser
el signo menos.
ldiv()
Sintaxis: ldiv_t ldiv(long int numero, long int denom);
Declarado: stdlib.h
Funci¢n: Divide dos longs devolviendo el cociente y el resto.
l_divt es una estructura de la siguiente forma:
typedef struct {
long int quot; /* cociente */
long int rem; /* resto */
} ldiv_t;
lfind()
Sintaxis: void *lfind(const void *objeto, const void
*base, size_t *num, size_t bytes, int
(*comparar)(const void *, const void *));
Declarado: stdlib.h
Funci¢n: Ejecuta una b£squeda lineal de objeto en un array no
necesariamente clasificado. base es un puntero al primer
elemento del array, num es un puntero a una variable que
contiene el n£mero de elementos del array, bytes es la
longitud en bytes de un elemento, comparar es un puntero
a una funci¢n definida por el usuario, que compara dos
elementos y retorna un valor <> 0 si elemento1 y
elemento2, son distintos, = 0 si los dos son iguales.
La funci¢n devuelve un puntero a la primera ocurrencia de
objeto.
_lrotl()
Sintaxis: unsigned long _lrotl(unsigned long val, int
count);
Declarado: stdlib.h
Funci¢n: Hace una rotaci¢n de count bits a la izda del long
val y devuelve su resultado.
_lrotr()
Sintaxis: unsigned long _lrotr(unsigned long val, int
count);
Declarado: stdlib.h
Funci¢n: Hace una rotaci¢n de count bits a la dcha del long
val y devuelve su resultado.
lsearch()
Sintaxis: void *lsearch(const void *objeto, const void
*base, size_t *num, size_t bytes, int
(*comparar)(const void *, const void *));
Declarado: stdlib.h
Funci¢n: Ejecuta una b£squeda lineal de objeto en un array no
necesariamente clasificado. base es un puntero al primer
elemento del array, num es un puntero a una variable que
contiene el n£mero de elementos del array, bytes es la
longitud en bytes de un elemento, comparar es un puntero
a una funci¢n definida por el usuario, que compara dos
elementos y retorna un valor <> 0 si elemento1 y
elemento2, son distintos, = 0 si los dos son iguales.
La funci¢n devuelve un puntero a la primera ocurrencia de
objeto. Si objeto no se encuentra en el array, lsearch lo
a¤ade al final.
malloc()
Sintaxis: void *malloc(size_t size);
Declarado: stdlib.h, alloc.h
Funci¢n: Reserva un bloque de memoria de tama¤o size y retorna
un puntero al comienzo de ella.
max()
Sintaxis: (type) max(a, b);
Declarado: stdlib.h
Funci¢n: Esta macro compara dos valores y devuelve el mayor de
los dos.
min()
Sintaxis: (type) min(a, b);
Declarado: stdlib.h
Funci¢n: Compara dos valores y devuelve el menor de los dos.
putenv()
Sintaxis: int putenv(const char *nombre);
Declarado. stdlib.h
Funci¢n: Carga la cadena nombre y la suma al entorno del
proceso. Puede ser usado tambi‚n para modificar o borra
un nombre existente. En caso de error devuelve -1.
qsort()
Sintaxis: void qsort(void *base, size_t num, size_t
bytes, int (*comparar)(const void *elemento1,
const void *elemento2));
Declarado: stdlib.h
Funci¢n: Esta funci¢n ordena un array. base es un puntero al
primer elemento del array, num es el n£mero de elementos
del array, bytes es la longitud en bytes de un elemento,
comparar es una funci¢n definida por el usuario, que
compara dos elementos y retorna un valor:
< 0 si elemento1 menor a elemento2
> 0 si elemento1 mayor a elemento2
= 0 si elemento1 igual a elemento2
La clasificaci¢n que se obtiene es en orden ascendente.
Si queremos una clasificaci¢n en orden descendente,
invertir los valores devueltos por la funci¢n comparar.
rand()
Sintaxis: int rand(void);
Declarado: stdlib.h
Funci¢n: Genera un flujo de n£meros pseudoaleatorios. Cada vez
que se llama, se devuelve un entero entre 0 y RAND_MAX,
esta constante est definida en stdlib.h y es igual a
215ñ1.
random()
Sintaxis: int random(int num);
Declarado: stdlib.h
Funci¢n: Devuelve un n£mero aleatorio comprendido entre 0 y
num - 1.
randomize()
Sintaxis: void randomize(void);
Declarado: stdlib.h
Funci¢n: Inicializa el generador de n£meros aleatorios
utilizando el reloj del ordenador.
_rotl()
Sintaxis: unsigned _rotl(unsigned valor, int cuenta);
Declarado: stdlib.h
Funci¢n: Rota valor cuenta bits a la izda.
_rotr()
Sintaxis: unsigned _rotr(unsigned valor, int cuenta);
Declarado: stdlib.h
Funci¢n: Rota valor cuenta bits a la dcha.
srand()
Sintaxis: void srand(unsigned arg);
Declarado: stdlib.h
Funci¢n: Fija el punto de comienzo para generar n£meros
pseudoaleatorios. Si no se utiliza, el punto de comienzo
siempre es el mismo para cada ejecuci¢n, que es el
correspondiente al argumento de valor 1.
strtod()
Sintaxis: double strtod(char *ini, char **fin);
Declarado: stdlib.h
Funci¢n: Convierte la representaci¢n de cadena de un n£mero
almacenado en la cadena apuntada por ini en un valor
double y devuelve el resultado.
La funci¢n strtod() trabaja de la siguiente forma.
Primero, se elimina cualquier car cter en blanco de la
cadena apuntada por ini. A continuaci¢n cada car cter que
constituye el n£mero es le¡do. Cualquier car cter que no
pueda ser parte de un n£mero en coma flotante dar lugar
a que el proceso se detenga. Esto incluye el espacio en
blanco, signos de puntuaci¢n distintos del punto, y
caracteres que no sean E o e. Finalmente fin se deja
apuntando al resto, si lo hay, de la cadena original.
Esto supone que si strtod() se llama con 100.000 pliers,
se devuelve el valor 100.000 y fin apunta al espacio que
precede a pliers.
Si se produce un error de conversi¢n, strtod() devuelve
HUGE_VAL
strtol()
Sintaxis: long strtol(char *ini, char **fin, int radix);
Declarado: stdlib.h
Funci¢n: Convierte la representaci¢n en cadena de caracteres
de un n£mero (ini), en un n£mero de tipo long int y
devuelve el resultado. La base del n£mero est
determinada por radix. Si radix es 0, la base viene
determinada por la regla que gobierna la especificaci¢n
de constantes. Si radix est especificada, debe tener un
valor en el rango 2 a 36.
Esta funci¢n trabaja de la siguiente forma. Primero,
cualquier espacio en blanco en la cadena apuntada por ini
es eliminado. A continuaci¢n, se lee cada car cter que
constituye el n£mero. Cualquier car cter que no pueda
formar parte de un long int da lugar a que el proceso se
detenga. Esto incluye espacios en blanco, signos de
puntuaci¢n y caracteres. Finalmente, fin se deja
apuntando al resto, si lo hay, de la cadena original.
Esto supone que si strtol() se llama con 100 ptas, el
valor que se devuelve es 100L y fin apunta al espacio que
precede a ptas.
En caso de error devuelve 0.
strtoul()
Sintaxis: unsigned long strtol(char *ini, char **fin, int
radix);
Declarado: stdlib.h
Funci¢n: Esta funci¢n es exactamente igual a la anterior con
la diferencia de que es unsigned long en lugar de long.
swab()
Sintaxis: void swab(char *desde, char *a, int nbytes);
Declarado: stdlib.h
Funci¢n: Copia nbytes desde la cadena desde en la cadena a.
system()
Sintaxis: int system(const char *comando);
Declarado: stdlib.h, process.h
Funci¢n: Invoca al command.com y ejecuta comando.
ultoa()
Sintaxis: char *ultoa(unsigned long valor, char *cad, int
base);
Declarado: stdlib.h
Funci¢n: Convierte el unsigned long valor en la cadena de
caracteres cad. base es la base (2 - 36) en la que viene
especificado el valor. Si la base es 10 y el valor es
negativo, el primer car cter es el signo menos.
LIBRERIAS DE TURBO C - string.h
memccpy()
Sintaxis: void *memccpy(void *dest, const void *src, int
c, size_t n);
Declarado: string.h, mem.h
Funci¢n: Copia un bloque de n bytes desde scr en dest. La
copia para en uno de los siguientes casos:
- El car cter c es el primero en copiarse en dest.
- n bytes son copiados en dest
memchr()
Sintaxis: void *memchr(const void *s, int c, size_t n);
Declarado: string.h, mem.h
Funci¢n: Busca en los primeros n bytes del bloque apuntado por
s el car cter c.
memcmp()
Sintaxis: int memcmp(const void *s1, const void *s2,
size_t n);
Declarado: string.h, mem.h
Funci¢n: Compara los n primeros bytes de los bloques s1 y s2
devolviendo < 0 si s1 < s2, = 0 si s1 = s2, > 0 si s1 >
s2.
memcpy()
Sintaxis: void *memcpy(void *hacia, void *desde, size_t
cuenta);
Declarado: string.h, mem.h
Funci¢n: Copia cuenta caracteres del array apuntado por desde
en el array apuntado por hacia. La funci¢n devuelve un
puntero a hacia.
memicmp()
Sintaxis: int memicmp(const void *s1, const void *s2,
size_t n);
Declarado: string.h, mem.h
Funci¢n: Compara los n primeros bytes de las cadenas de
caracteres s1 y s2 ignorando may£sculas y min£sculas.
Devuelve:
< 0 si s1 < s2.
= 0 si s1 = s2
> 0 si s1 > s2.
memmove()
Sintaxis: void *memmove(void *dest, const void *scr,
size_t n);
Declarado: string.h, mem.h
Funci¢n: Copia un bloque de n bytes desde src en dest.
Devuelve un puntero a dest.
memset()
Sintaxis: void *memset(void *buf, int ch, size_t cuenta);
Declarado: string.h, mem.h
Funci¢n: Copia el byte menos significativo de ch en los
primeros cuenta caracteres del array apuntado por buf,
devolviendo un puntero a buf.
movedata()
Sintaxis: void movedata(unsigned srcseg, unsigned srcoff,
unsigned dstseg, unsigned dstoff, size_t n);
Declarado: string.h, mem.h
Funci¢n: Copia n bytes desde (srcseg:srcoff) a
(dstseg:dstoff).
stpcpy()
Sintaxis: char *stpcpy(char *dest, const char *src);
Declarado: string.h
Funci¢n: Copia la cadena src en dest, parando antes de leer un
car cter nulo.
strcat()
Sintaxis: char *strcat(char *dest, char *scr);
Declarado: string.h
Funci¢n: A¤ade scr inmediatamente despu‚s de dest retornando
un puntero a scr.
strchr()
Sintaxis: char *strchr(char *cad, int ch);
Declarado: string.h
Funci¢n: Devuelve un puntero a la primera ocurrencia del byte
m s significativo de ch en la cadena apuntada por cad. Si
no se encuentra, devuelve un puntero nulo.
strcmp()
Sintaxis: int strcmp(char *cad1, char *cad2);
Declarado: string.h
Funci¢n: Compara dos las cadenas cad1 y cad2 devolviendo un
numero negativo si cad1 < cad2, ser 0 si ambas cadenas
son iguales y un n£mero positivo si cad1 > cad2. Esta
funci¢n es sensible a may£sculas y min£sculas.
strcmpi()
Sintaxis: int strcmpi(char *cad1, char *cad2);
Declarado: string.h
Funci¢n: Esta funci¢n es id‚ntica a la anterior con la
diferencia de que la comparaci¢n no es sensible a
may£sculas y min£sculas.
strcpy()
Sintaxis: char *strcpy(char *dest, const char *cad);
Declarado: string.h
Funci¢n: Copia cad, incluyendo el car cter de terminaci¢n
nulo, en dest y devuelve un puntero a dest.
strcspn()
Sintaxis: size_t strcspn(char *cad1, char *cad2);
Declarado: string.h
Funci¢n: Devuelve la longitud de la subcadena inicial apuntada
por cad1 que est constituida solo por aquellos
caracteres que no est n contenidos en la cadena cad2.
Dicho de otra forma, strcspn() devuelve el ¡ndice del
primer car cter en la cadena apuntada por cad1 que est
como car cter de la cadena apuntada por cad2.
strdup()
Sintaxis: char *strdup(const char *s);
Declarado: string.h
Funci¢n: Hace un duplicado de la cadena s, obteniendo espacio
con una llamada a malloc. El espacio asignado es
strlen(s)+1 bytes de longitud. El usuario es responsable
de liberar el espacio asignado por strdup() cuando deje
de ser necesario.
Esta funci¢n devuelve un puntero a la posici¢n de
almacenamiento, que contiene el duplicado de la cadena, o
retorna un nulo si no puede ser asignado el espacio.
_strerror()
Sintaxis: char *_strerror(const char *s);
Declarado: string.h, stdio.h
Funci¢n: Devuelve un puntero a la cadena de mensaje de error.
La cadena de mensaje de error est construida en un
buffer est tico que es sobrescrito con cada llamada a
sterror.
stricmp()
Sintaxis: int stricmp(char *cad1, char *cad2);
Declarado: string.h
Funci¢n: Esta funci¢n es exactamente igual a strcmpi().
strlen()
Sintaxis: size_t strlen(cahr *cad);
Declarado: string.h
Funci¢n: Devuelve la longitud en bytes de cad, no incluyendo
el car cter nulo de terminaci¢n.
strlwr()
Sintaxis: char *strlwr(char *s);
Declarado: string.h
Funci¢n: Convierte las may£sculas de la cadena s en min£sculas
devolviendo un puntero a s.
strncat()
Sintaxis: char *strncat(char *dest, char *cad, size_t n);
Declarado: string.h
Funci¢n: A¤ade los n primeros caracteres de cad a dest,
termina la cadena resultante con un nulo y devuelve un
puntero a dest. Si n es mayor que la longitud de cad, se
utiliza como valor de n la longitud de cad.
strncmp()
Sintaxis: int strncmp(char *cad1, char *cad2, size_t n);
Declarado: string.h
Funci¢n: Compara los n primeros caracteres de cad1 y cad2 y
devuelve un valor < 0 si cad1 es menor a cad2, = 0 si las
cadenas son iguales y > 0 si cad1 es mayor a cad2.
strncmpi()
Sintaxis: int strncmp(char *cad1, char *cad2, size_t n);
Declarado: string.h
Funci¢n: Esta funci¢n es id‚ntica a la anterior con la
diferencia de que la comparaci¢n no es sensible a
may£sculas y min£sculas.
strncpy()
Sintaxis: char *strncpy(char *dest, char *cad, size_t n);
Declarado: string.h
Funci¢n: Copia n caracteres de cad en dest y devuelve un
puntero a dest. Si n es menor que la longitud de cad, no
se a¤ade autom ticamente un car cter nulo a la cadena
resultante. Si n es mayor que la longitud de cad, dest es
rellenado con caracteres nulos hasta la longitud n.
strnicmp()
Sintaxis: int strncmpi(char *cad1, char *cad2, size_t n);
Declarado: string.h
Funci¢n: Esta funci¢n es exactamente igual a strncmpi()
strnset()
Sintaxis: char *strnset(char *s, int ch, size_t n);
Declarado: string.h
Funci¢n: Copia el car cter ch en los primeros n bytes de la
cadena s. Si n > strlen(s), n es reemplazado por
strlen(s). Devuelve un puntero a s.
strpbrk()
Sintaxis: char *strpbrk(const char *s1, const char *s2);
Declarado: string.h
Funci¢n: Devuelve un puntero a la primera ocurrencia de uno de
los caracteres de s2 en s1. Si ninguno de los caracteres
de s2 est en s1 devuelve un NULL.
strrchr()
Sintaxis: char strrchr(const char *s, int c);
Declarado: string.h
Funci¢n: Devuelve un puntero a la £ltima ocurrencia del
car cter c en s. Si c no est en s devuelve un NULL.
strrev()
Sintaxis: char *strrev(char *s);
Declarado: string.h
Funci¢n: Pone la cadena s al reves. Por ejemplo, si
cadena="papi\0" lo convierte en "ipap\0". Devuelve un
puntero a s.
strset()
Sintaxis: char *strset(char *s, int ch);
Declarado: string.h
Funci¢n: Copia en toda la cadena s el car cter ch devolviendo
un puntero a s.
strspn()
Sintaxis: size_t strspn(char *cad1, char *cad2);
Declarado: string.h
Funci¢n: Da como resultado la posici¢n (¡ndice) del primer
car cter de cad1, que no pertenece al conjunto de
caracteres contenidos en cad2.
strstr()
Sintaxis: char *strstr(char *cad1, char *cad2);
Declarado: string.h
Funci¢n: Devuelve un puntero a la primera ocurrencia de cad2
en cad1 o un valor NULL si cad2 no se encuentra en cad1.
strtok()
Sintaxis: char *strtok(char *cad1, char *cad2);
Declarado: string.h
Funci¢n: Lee cad1 como una serie de cero o m s elementos
b sicos separados por cualquiera de los caracteres
expresados en cad2, los cuales son interpretados como
delimitadores. Una vez le¡do el primer elemento de cad1,
la siguiente llamada a strtok, para leer el siguiente
elemento, se efect£a poniendo en lugar del argumento
cad1, NULL.
Esta funci¢n devuelve un puntero por cada elemento en
cad1. Cuando no hay m s elementos, se devuelve un puntero
nulo.
Puede ponerse m s de un delimitador entre elemento y
elemento. Tambi‚n pueden variarse el conjunto de
caracteres que act£an como delimitadores, de una llamada
a otra.
strupr()
Sintaxis: char *strupr(char *s);
Declarado: string.h
Funci¢n: Convierte las letras min£sculas de la cadena s en
may£sculas y devuelve un puntero a s.
LIBRERIAS DE TURBO C - sys\stat.h
fstat()
Sintaxis: int fstat(int handle, struct stat *statbuf);
Declarado: sys\stat.h
Funci¢n: Almacena informaci¢n en la estructura de tipo stat en
torno al fichero abierto o al directorio asociado con
handle, esta estructura contiene los siguientes campos:
st_mode m scara de bits con informaci¢n entorno al
modo de apertura del fichero.
st_dev n£mero de drive o disco que contiene el
fichero o file handle si el fichero es un
dispositivo.
st_rdev igual a st_dev
st_nlink seleccionado para la constante 1
st_size tama¤o en bytes del fichero abierto
st_atime Fecha m s reciente en que el fichero ha
sido modificado.
st_mtime igual a st_atime
st_ctime igual a st_atime
En caso de error devuelve -1, en caso contrario devuelve
0.
stat()
Sintaxis: stat(char *path, struct stat *buffer);
Declarado: sys\stat.h
Funci¢n: Obtiene informaci¢n acerca del fichero o directorio
especificado por path y la almacena en la estructura
apuntada de tipo stat buffer. La estructura contiene los
siguientes campos:
struct stat {
dev_t st_dev; Unidad de disco o n£mero de
dispositivo
ino_t st_ino;
unsigned short st_mode; caracter¡sticas
short st_nlink; Siempre es 1
short st_uid;
short st_gid;
dev_t st_rdev; Unidad de disco que lo contiene
off_t st_size; Tama¤o del fichero en bytes
time_t st_atime Ultima vez que se modific¢
time_t st_mtime Igual que st_atime
time_t st_ctime igual que st_atime
};
Devuelve 0 si no hay error. Un valor -1 indica error.
LIBRERIAS DE TURBO C - sys\timeb.h
ftime()
Sintaxis: void ftime(struct timeb *buf);
Declarado: sys\timeb.h
Funci¢n: Determina la hora actual y rellena la estructura de
tipo timeb apuntada por buf. Esta estructura contiene los
siguientes campos:
time contiene los segundos transcurridos desde
el 1 de Enero de 1.970.
millitm parte fraccionada de un segundo en
milisegundos.
timezone es la diferencia en minutos de la hora
local con la GMT.
dstflag es 0 o 1 dependiendo de la utilizaci¢n del
reloj de 12 o 24 horas.
LIBRERIAS DE TURBO C - sys\types.h
LIBRERIAS DE TURBO C - time.h
asctime()
Sintaxis: char *asctime(const struct tm *tbloc);
Declarado: time.h
Funci¢n: Convierte la hora almacenada en la estructura *tbloc
en una cadena de 26 caracteres de la forma siguiente
Sun Sep 16 01:03:52 1973\n\0
La funci¢n devuelve un puntero a la cadena de caracteres.
clock()
Sintaxis: clock_t clock(void);
Declarado: time.h
Funci¢n: Esta funci¢n se utiliza para saber el tiempo
transcurrido entre dos sucesos. Para convertir el tiempo
en segundos, se debe dividir el valor devuelto por la
funci¢n entre CLK_TCK.
ctime()
Sintaxis: char *ctime(const time_t *time);
Declarado: time.h
Funci¢n: Convierte el valor apuntado por time (valor retornado
por la funci¢n time) en una cadena de 26 caracteres del
formato siguiente:
Lun Nov 21 11:31:54 1983\n\0
difftime()
Sintaxis: double difftime(time_t time2, time_t time1);
Declarado: time.h
Funci¢n: Calcula el tiempo transcurrido entre dos tiempos
dados.
gmtime()
Sintaxis: struct tm *gmtime(const time_t *timer);
Declarado: time.h
Funci¢n: Coge la direcci¢n de un valor devuelto por time y
devuelve un puntero a la estructura de tipo tm. La
estructura es de la siguiente forma:
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
localtime()
Sintaxis: struct tm *localtime(const time_t *seg);
Declarado: time.h
Funci¢n: Convierte el n£mero de segundos transcurrido desde
las 0 horas del 1 de Enero de 1.970, valor obtenido
generalmente con la funci¢n time, a la fecha y hora
correspondiente, devolviendo un puntero a la estructura
de tipo tm que contiene los resultados, esta estructura
es como sigue:
struct tm {
int tm_sec; /* Segundos */
int tm_min; /* Minutos */
int tm_hour; /* horas (0 - 24) */
int tm_mday; /* D¡a del mes (1 - 31) */
int tm_mon; /* Mes (0 - 11) */
int tm_year; /* A¤o - 1.900 */
int tm_wday; /* D¡a de la semana (0 - 6) */
int tm_yday; /* D¡a del a¤o (0 - 365) */
int tm_isdst; /* Cero si de d¡a */
};
stime()
Sintaxis: int stime(time_t *tp);
Declarado: time.h
Funci¢n: Carga en tp el tiempo en segundos transcurrido desde
las 00:00:00 del 1 de Enero de 1970.
time()
Sintaxis: time_t time(time_t *seg);
Declarado: time.h
Funci¢n: Devuelve el n£mero de segundos transcurridos desde
las 0 horas del 1 de Enero de 1.970.
tzset()
Sintaxis: void tzset(void);
Declarado: time.h
Funci¢n: Carga los valores en las variables globales daylight,
timezone y tzname.
LIBRERIAS DE TURBO C - values.h
Define constantes compatibles con UNIX para l¡mites de
valores float y double.
BITSPERBYTE N£mero de bits en un byte
_DEXPLEN N£mero de bits en un exponente
DMAXEXP M ximo exponente disponible
DMAXPOWTWO
DMINEXP M¡nimo exponente disponible
DSIGNIF N£mero de bits significativos
_EXPBASE
_FEXPLEN N£mero de bits en un exponente
FMAXEXP M ximo exponente disponible
FMAXPOWTWO
FMINEXP M¡nimo exponente disponible
HIBITI M scara de bits. Bit del signo en un int
HIBITL Bit de signo en un long
HIBITS Bit de signo en un short
MAXDOUBLE M ximo valor double
MAXFLOAT M ximo valor float
MAXINT M ximo valor int
MAXLONG M ximo valor long
MAXSHRT M ximo valor short
MINDOUBLE M¡nimo valor double
MINFLOAT Minimo valor float.
EL COMPILADAR TCC
Un programa en C se puede desarrollar en su totalidad
desde el entorno integrado de desarrollo. Pero cuando se
emplea otro editor, es m s pr ctico compilarlo desde el
propio sistema operativo. Para esto se invoca al programa
TCC, que realiza la compilaci¢n e invoca al montador
TLINK para crear un fichero ejecutable. Por ejemplo
TCC TT41.c
compila TT41.c y monta con la librer¡a correspondiente el
fichero objeto generado. La forma general para invocarlo
es
TCC [opcion1 opcion2 ...] fichero1 ...
donde fichero es un fichero fuente, un fichero objeto, o
una librer¡a; y opci¢n es una de las opciones que
aparecen en la tabla siguiente. Todas las opciones del
compilador comienzan con un gui¢n.
Para compilar y no montar TT41.c, la ordrn desde el DOS
ser la siguiente:
TCC -c TT41.c
Si se invoca al compilador de la forma siguiente:
TCC -S TT41.C
indica que se crear el fichero TT41.ASM con un listado
en ensamblador del programa fuente.
Las opciones -S y -B no se pueden utilizar en el sistema
integrado de desarrollo, por lo tanto, cuando se quiera
incluir rutinas en ensamblador, o cuando se quiera
obtener un listado en ensamblador del programa furente,
se debe compilar desde el sistema operativo.
Si se tiene un programa con dos m¢dulos, por ejemplo,
T4101.c y T4102.c con el segundo ya compilado, se invoca
al compilador de la siguiente forma
TCC T4101 T4102.OBJ
que compila T4101 y monta T4101.OBJ y T4102.OBJ con la
librer¡a correspondiente. Si se tiene otra librer¡a que
no utiliza Turbo C, ‚sta se a¤ade con la extensi¢n .LIB.
OPCION SIGNIFICADO
-A Solo reconoce las palabras ANSY C
-a Usa alineaci¢n de palabras para los
datos.
-a- Usa alineaci¢n de bytes para los
þdatos
-B Se incluye c¢digo en ensamblador en
el fichero fuente
-C Admite anidamiento de comentarios
-c Solo realiza la compilaci¢n a .OBJ
-Dnombre Define un nombre de macro
-Dnombre=cadena Define y da un valor a una macro
-d Optimiza las cadenas duplicadas
-d- No optimiza las cadenas duplicadas
-Enombre Indica el nombre del ensamblador a
emplear (por defecto es TASM)
-enombre Especifica el nombre de un fichero de
proyecto
-f Emplea emulaci¢n de punto flotante
-f- Sin emulaci¢n de punto flotante
-f87 Usa el coprocesador 8087
-G Optimiza el c¢digo por velocidad
-gN Aborta la compilaci¢n despues de N
avisos del compilador.
-Icamino Especifica el directorio o camino de
los ficheros de encabezamiento.
-iN Especifica la longitud m xima para
los identificadores
-jN Aborta la compilaci¢n despues de N
errores
-K Por defecto, todas las variables de
tipo char no tienen signo
-K- Por defecto todas las variables de
tipo char son con signo
-k Emplea una pila estandard
-Lcamino Especifica el directorio de la
biblioteca de funciones
-M Crea un fichero el mapa de s¡mbolos
-mc Emplea el modelo compacto de memoria
-mh Emplea el modelo huge de memoria
-ml Emplea modelo large de memoria
-mm Emplea modelo medium de memoria
-ms Emplea modelo small
-mt emplea modelo tiny
-N Genera el c¢digo necesario para
comprobar desbordamiento de pila
-ncamino Especifica el directorio de salida
-O Optimiza el c¢digo de tama¤o
-Onombre Nombre del fichero objeto que se
genera
-p Emplea las convenciones del Pascal
para invocar funciones
-p- Emplea las convenciones del C para
invocar a funciones
-r Emplea variables de tipo registro
-S Genera un fichero en ensamblador
-Unombre Elimina una macro
-v Incluye la informaci¢n necesaria para
depurar el programa (ya sea a trav‚s
de los men£s de Turbo C o con Turbo
Debugger)
-w Visualiza las advertencias del
compilador
-w- No visualiza las advertencias del
compilador
-y Incluye la numeraci¢n de las l¡neas
en c¢digo fuente
-Z Optimiza variables con el tipo
registro
-1 Genera instrucciones para 80186/80286
-1- Genera instrucciones para 8088/8086
EL MONTADOR TLINK
El programa TCC utiliza el montador TLINK para enlazar
los ficheros objeto que genera. Tambien es posible invocar
directamente este montador desde el sistema operativo. El
montador se puede emplear para ficheros objeto compilados con
Turbo C, Turbo Assembler y Turbo Prolog, entre otros. El
formato general para emplear TLINK es:
TLINK ficheros.obj,ficheros.exe,fichero.map,librerias
Si no se especifica el fichero ejecutable, se toma el
nombre del primer fichero objeto. Si no se especifica el
nombre del fichero de mapa de memoria, se toma el nombre del
fichero ejecutable.
Cuando se enlazan programas compilados con Turbo C, se
debe a¤adir un fichero objeto seg£n el modelo de memoria que
se emplee. Los m¢dulos objeto son los siguientes:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º M¢dulo ³ Modelo de memoria º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º COT.OBJ ³ Tiny (muy peque¤o) º
º COS.OBJ ³ Small (peque¤o) º
º COM.OBJ ³ Medium (mediano) º
º COC.OBJ ³ Compact (compacto) º
º COL.OBJ ³ Large (grande) º
º COH.OBJ ³ HUge (muy grande) º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Estos m¢dulos deben ir al principio de la orden. Tambi‚n
hay que incluir la libreria que emplee TLINK. Hay varios
m¢dulos de libreria, descritos en la siguiente figura, cada
uno correspondiendo a un modelo de memoria, y son:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Librer¡a ³ Modelo de memoria º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º CT.LIB ³ Tiny (muy peque¤o) º
º CS.LIB ³ Small (peque¤o) º
º CM.LIB ³ Medium (mediano) º
º CC.LIB ³ Compact (compacto) º
º CL.LIB ³ Large (grande) º
º CH.LIB ³ HUge (muy grande) º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Existen tambi‚n otros m¢dulos de librer¡a que se emplean
con las funciones matem ticas, y son:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Librer¡a ³ Modelo de memoria º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º EMU.LIB ³ todos (emula el 8087) º
º FP87.LIB ³ todos, el 8087 est presente º
º MATHt.LIB ³ Tiny (muy peque¤o) º
º MATHs.LIB ³ Small (peque¤o) º
º MATHc.LIB ³ Compact (compacto) º
º MATHm.LIB ³ Medium (mediano) º
º MATHl.LIB ³ Large (grande) º
º MATHh.LIB ³ Huge (muy grande) º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Si se quieren enlazar los m¢dulos T4101, T4102 y T4103 de
un programa que utiliza datos en punto flotante y funciones
matem ticas con el modelo compacto de memoria, se invocar a
TLINK desde el DOS de la siguiente forma:
TLINK COC T4101 T4102 T4103,TT41,,EMU MATHC CC
Si existen muchos m¢dulos y la orden no cabe en una sola
l¡nea, se puede crear un fichero y almacenar toda la
informaci¢n en ‚l. En este caso TLINK se invocar de la forma
siguiente:
TLINK @nombre-de-fichero
El montador TLINK admite las opciones que aparecen en la
tabla siguiente:
Opci¢n ignificado
ÉÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ³ /c ³ May£sculas y min£sculas se diferencian en ³os º
º ³ s¡mbolos º
º /d ³ Avisa de s¡mbolos duplicados º
º /i ³ Inicializa todos los segmentos º
º /l ³ Incluye los n£meros de las l¡neas del c¢digo º
º ³ fuente º
º /m ³ Incluye los s¡mbolos globales en el mapa º
º /n ³ Ignora la libreria por defecto º
º /s ³ Crea un mapa detallando los segmentos º
º /x ³ No se genera ning£n mapa º
ÈÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Cada opci¢n comienza con una barra y se puede incluir en
cualquier parte de la l¡nea de comando.
NOTA: Los modelos de memoria que admiten m s de 64 kbytes
de datos o de c¢digo, no pueden sobrepasar este tama¤o en un
solo m¢dulo. En el caso de suceder esto, tendremos que dividir
el m¢dulo en varios ficheros fuente
Dentro de un programa muchas veces es necesario acceder a
zonas de memoria que no est n en el mismo segmento. Para poder
mantener el modelo peque¤o de memoria, y no tener que compilar
con otro, Turbo C proporciona dos tipos de modificadores de
datos, que permiten que un puntero pueda apuntar a otros
segmentos. EStos modificadores son far y huge. Por ejemplo:
char far *yo_apunto;
declara un puntero, de tipo far, a caracteres. El puntero far
indica que puede acceder a direcciones de memoria
pertenecientes a otros segmentos.
Con un puntero far hay que tener en cunta que la
aritm‚tica de punteros solo afecta al desplazamiento de la
direcci¢n, no al segmento, es decir, el operador de incremento
no afecta al valor del segmento. Sin embargo, los operadores
== y != si comparan todos los bits de la direcci¢n, y por lo
tanto, es posible si un puntero es igual a 0 (puntero nulo o
NULL). No se puede realizar ning£n otro tipo de comparaci¢n
con los punteros far.
El modificador far tambi‚n se puede emplear sobre
funciones, cuando estas est n en otros segmentos. Este es el
caso de las funciones residentes en rom.
El modificador huge es similar al far, con la ventaja de
que la aritm‚tica de punteros se calcula con la direcci¢n
completa. Por lo tanto, permite realizar incrementos y
comparaciones de una direcci¢n.
El complemeto de los modificadores far y huge, es el
modificador near, que se utiliza cuando se compila con los
modelos grandes de memoria, y se desea declarar un puntero que
apunte a variables dentro del propio segmento. Con este
modificador Turbo C emplea el puntero como un desplazamiento
de 16 bits para el registro DS.
Si se compila con los modelos medium, large o huge, todas
las funciones devuelven en la pila una direcci¢n de 4 octetos
(empleando 20 bits o m s). Declarando una funci¢n como near,
se fuerza a que devuelva una direcci¢n de 16 bits. ESto es
pr ctico, por ejemplo, cuando una funci¢n es recursiva, y se
desee evitar que consuma mucha memoria de pila. De esta forma
tambi‚n se gana en velocidad de ejecuci¢n.
Turbo C proporciona otros cuatro modificadores de
punteros para definir los segmentos dentro de los que puede
apuntar. Los cuatro modificadores son _cs, _ds, _ss y _es. Por
ejemplo,
char _ds *yo_apunto_puntero;
declara un puntero que va a contener desplazamientos dentro
del segmento de datos.
COMPILACION DE PROGRAMAS DE VARIOS MODULOS
Cuando los programas son muy grandes, los ficheros son
m s lentos para editar y compilar. Si hay que realizar un
peque¤o cambio en una funci¢n, es necesarioa recompilar todo
el programa. De ahi que cuando un programa crezca en tama¤o,
sea necesario, casi obligatorio, dividirlo en unidades
significativas llamadas m¢dulos. Esta forma de trabajo tambi‚n
tiene otra ventaja, pues facilita que varias personas
participen en un proyecto, permitiendo que cada una de ellas
se encargue de programar uno o varios m¢dulos.
Los m¢dulos se mantienen como ficheros independientes que
se compilan por separado. Pero cuando hay muchas m¢dulos, cada
vez que se quiera ejecutar el programa, ser necesario
recordar cuales son los m¢dulos que se deben recompilar. Para
estos casos Turbo C proporciona una utilidad que mantiene
automaticamente los m¢dulos de un programa. ESto se consigue
definiendo un fichero de proyecto, que contenga los nombres de
todos los m¢dulos que forman parte del programa.
En el entorno integrado de Turbo C existe una opci¢n para
definir un fichero de proyecto. En este fichero se incluyen
los nombres de los m¢dulos que integran un programa. El
fichero de proyecto debe tener extensi¢n .PRJ. Los nombres de
los m¢dulos fuente se indican en cada l¡nea del fichero de
proyecto, por ejemplo:
T4101.C
T4102.C
T4103.C
Si se selecciona la opci¢n RUN del men£ principal, el
sistema lee los nombres en el fichero de proyecto previamente
indicado con la opci¢n PROJECT NAME, del men£ PROJECT, y
compila los m¢dulos necesarios, los enlaza y finalmente
ejecuta el programa. Si no se quiere ejecutar el programa, se
selecciona la opci¢n MAKE dentro del men£ COMPILE. Tambi‚n se
puede utilizar la tecla de funci¢n F9.
Para decidir que ficheros se deben compilar, Turbo C
compara la fecha y hora de cada fichero fuente con su fichero
objeto.
En el fichero de proyecto se pueden definir las
relaciones de unos m¢dulos con otros. Por ejemplo:
T4101.C (CONSTANT.H) (GLOBALES.H)
T4102.C (CONSTANT.H) (GLOBALES.H)
T4103.C
indica que los dos primeros m¢dulos se tienen que volver a
compilar si hay alg£n cambio en los ficheros de encabezamiento
CONSTANT.H o GLOBALES.H. Esta situaci¢n es muy com£n puesto
que es comveniente agrupar los prototipos de las funcines, las
constantes, las macros y las variables globales en ficheros de
encabezamiento, que se a¤aden a los m¢dulos que las necesiten,
de una forma similar a como los ficheros de encabezamiento que
se a¤adan a los m¢dulos que las necesiten, de una forma
similar a como los ficheros de encabezamiento se deben incluir
en las diferentes librer¡as.
Para compilar varios m¢dulos desde la l¡nea de ordenes
del DOS, se emplea el programa MAKE. La forma de emplear esta
utilidad es similar a la anterior. El formato general de MAKE
es:
fichero 1: lista de ficheros dependientes
secuencia de ordenes
fichero 2: lista de ficheros dependientes
secuencia de ordenes
...
fichero n: lista de ficheros dependientes
secuencia de ordenes
La definici¢n consta de ficheros dependientes cuya
finalidad es la construcci¢n de otro fichero. De esta forma el
fichero destino puede ser el m¢dulo objeto y el fichero
dependiente, el m¢dulo fuente. La utilidad MAKE compara la
fecha y hora de ambos ficheros. Si el fichero destino no
existe o es anterior al dependiente se ejecuta la orden dada
en la l¡nea siguiente. Poe ejemplo, para mantener un programa
con dos m¢dulos, T4101.C y T4102.C, y el fichero de
encabezamiento CONSTANT.H; se crear¡a un fichero con la
siguiente definici¢n:
T4101.OBJ: T4101.C CONSTANT.H
TCC -c -mh T4101.C
T4102.OBJ: T4102.C CONSTANT.H
TCC -c -mh T4102.C
TT41.EXE: T4101.OBJ T4102.OBJ
TLINK COH T4101.OBJT4102.OBJ,TT41,TT41,
EMU MATHH CH
Las l¡neas de este fichero indican las condiciones de
compilaci¢n para cada uno de los m¢dulos del programa. Cuando
la fecha de los ficheros T4101.C o CONSTANT.H sea posterior a
la de T4101.OBJ, se ejecutar n las ordenes que se incican en
la l¡nea posterior a la comparaci¢n. Lo mismo ocurre con la
l¡nea de T4102.C, y de forma similar, cuando cualquiera de los
ficheros objeto T4101.OBJ o T4102.OBJ sea posterior a
TT41.EXE, el fichero se volver a montar usando TLINK
Hay que tener en cuenta ciertas reglas:
- La lista de ordenes debe comenzar con espacio o
tabulador.
- El fichero destino debe comenzar en la primera columna
- Cada especificaci¢n de m¢dulo debe estar separada por
una linea en blanco.
Tambi‚n se puede introducir comentarios, empleando el
caracter #, que har que se tome como comentario todo lo que
le preceda hasta el final de l¡nea.
Para invocar un programa MAKE, se indica con la opci¢n -f
el nombre del fichero que contiene la descripci¢n de los
m¢dulos. Por ejemplo.
MAKE -fTT41.PRJ
invoca al programa MAKE con el fichero TT41.PRJ. Si no se
especifica ning£n nombre, se emplea el nombre MAKEFILE por
defecto.
Si antes de reconstruir un programa con varios m¢dulos se
desea actualizar la fecha de alg£n fichero, se puede emplear
el programa TOUCH, que asigna la fecha y hora del sistema
operativo al fichero que se indica como argumento. Esta
utilidad admite los comodines.
LA UTILIDAD CPP
Cuando en alg£n programa se tienen problemas en la
declaraci¢n de una macro, o en un fichero de encabezamiento,
es muy util espandir el fichero fuente para poder inspeccionar
bien el posible error. Para ello se puede emplear la utilidad
CPP, que recibe como argumento un fichero fuente y crea el
mismo fichero expandiendo todas las macros y las directivas
#include.
Si CPP se le invoca con la opcion -P- no se genera la
salida de esta forma, y se podr compilar el fichero
resultante.
LA UTILIDAD OBJXREF
Esta utilidad examina uno o varios ficheros objeto y
produce un informe sobre sus contenidos. Se puede emplear con
una librer¡a. El formato general es:
OBJXREF ficheros
Admite las opciones siguientes:
DE CONTROL SIGNIFICADO
/I Se emplea cuando no se ha utilizado /C con
TLINK (cuando no distingue may£sculas de
min£sculas)
/F Incluye todos los ficheros objeto de la
librer¡a especificada.
/V Lista los nombres de los ficheros y el
total de m¢dulos, segmentos y clases.
/Z Incluye los segmentos sin longitud.
TIPO LISTADO SIGNIFICADO
/RC Listado ordenado por el tipo de segmento
(BSS, CODE, DATA):
/RM Lista todos los m¢dulos, junto con los
nombres p£blicos que contienen
/RP Listado ordenado por nombres p£blicos,
indicando para cada uno, el m¢dulo a que
pertenece.
/RR Es la opci¢n por defecto. Produce un
listado ordenado con los nombres p£blicos.
Junto a cada nombre se indica el m¢dulo al
que pertenece y los m¢dulos que lo
referencian.
/RS Se listan los nombres de los segmentos,
junto con los m¢dulos que los componen.
Para cada m¢dulo se indica el tama¤o en
bytes.
/RU Listado de los nombres no referenciados
/RV Se genera un listado de cada tipo
/RX Se produce un listado con las referencias
externas que contenga cada m¢dulo.
C Y ENSAMBLADOR
Un programa en C puede incluir instrucciones en
ensamblador, con la condici¢n de que lleven el prefijo asm. El
formato es el siguiente:
asm
La l¡nea de instrucci¢n termina con el retorno de carro o
con punto y coma. Para introducir comentarios, se emplean los
mismos s¡mbolos de C.
Los programas que emplean c¢digo en ensamblador deber n
de compilarse en modo l¡nea de ordenes con el programa TCC,
empleando la opci¢n -B. Tambi‚n el ensamblador MASM debe estar
disponible, y debe ser la versi¢n 3.0 o posterior. La versi¢n
2.0 de Turbo C no invoca al MASM sino al Turbo Assembler
(TASM). Cuando el compilador encuentra la palabra asm, invoca
al ensamblador con la l¡nea correspondiente.