PDF de programación - Guía Linux de Programación (GULP) v.04

Imágen de pdf Guía Linux de Programación (GULP) v.04

Guía Linux de Programación (GULP) v.04gráfica de visualizaciones

Actualizado el 28 de Julio del 2017 (Publicado el 14 de Enero del 2017)
1.768 visualizaciones desde el 14 de Enero del 2017
737,9 KB
167 paginas
Creado hace 29a (01/03/1995)
Guía Linux de Programación (GULP)

Sven Goldt

Sven van der Meer

Scott Burkett
Matt Welsh

Versión 0.4
Marzo 1995

0...Nuestro objetivo permanente: mejorar nuestro conocimiento de C, explorar

extraños comandos Unix y to boldly code where no one has man page 4.

2

Índice General

1 El sistema operativo Linux

2 El núcleo de Linux

3 El paquete libc de Linux

4 Llamadas al sistema

5 Una llamada multiuso: “ioctl”

6 Comunicación entre procesos en Linux

6.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Pipes UNIX Semi-dúplex . . . . . . . . . . . . . . . . . . . .
6.2.1 Conceptos básicos
. . . . . . . . . . . . . . . . . . . .
6.2.2 Creación de tuberías en C . . . . . . . . . . . . . . . .
6.2.3 Tuberías, la forma fácil de hacerlo . . . . . . . . . . .
6.2.4 Operaciones atómicas con tuberías . . . . . . . . . . .
6.2.5 Notas acerca de las tuberías semi-dúplex:
. . . . . . .
6.3 Tuberías con Nombre (FIFO - First In First Out) . . . . . . .
6.3.1 Conceptos básicos
. . . . . . . . . . . . . . . . . . . .
6.3.2 Creación de una FIFO . . . . . . . . . . . . . . . . . .
6.3.3 Operaciones con FIFOs
. . . . . . . . . . . . . . . . .
6.3.4 Acciones Bloqueantes en una FIFO . . . . . . . . . . .
6.3.5 La Infame Señal SIGPIPE . . . . . . . . . . . . . . . .
IPC en Sistema V . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Conceptos fundamentales
. . . . . . . . . . . . . . . .
6.4.2 Colas de Mensajes . . . . . . . . . . . . . . . . . . . .
6.4.3
Semáforos . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.4 Memoria Compartida . . . . . . . . . . . . . . . . . .

6.4

7 Programación del Sonido

7.1 Programación del altavoz interno . . . . . . . . . . . . . . . .
7.2 Programación de una Tarjeta de sonido . . . . . . . . . . . .

3

9

11

13

15

17

19
19
19
19
21
27
31
32
32
32
32
34
36
36
36
36
39
57
77

87
87
88

4

ÍNDICE GENERAL

8 Gráficos en modo carácter

8.8 Opciones

8.1 Funciones E/S en la libc . . . . . . . . . . . . . . . . . . . . .
8.1.1
Salida con Formato . . . . . . . . . . . . . . . . . . . .
8.1.2 Entrada con Formato . . . . . . . . . . . . . . . . . .
8.2 La Librería Termcap . . . . . . . . . . . . . . . . . . . . . . .
8.2.1
Introducción . . . . . . . . . . . . . . . . . . . . . . .
8.2.2 Encontrar la descripción del terminal . . . . . . . . . .
8.2.3 Lectura de una descripción de terminal
. . . . . . . .
8.2.4 Capacidades de Termcap . . . . . . . . . . . . . . . .

89
90
90
92
94
94
94
95
96
8.3 Ncurses - Introducción . . . . . . . . . . . . . . . . . . . . . . 101
8.4
Inicialización . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.5 Ventanas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.6 Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.6.1
Salida con Formato . . . . . . . . . . . . . . . . . . . . 109
8.6.2
Inserción de Caracteres/Líneas . . . . . . . . . . . . . 109
8.6.3 Borrado de Caracteres/Líneas . . . . . . . . . . . . . . 110
8.6.4 Cajas y Líneas
. . . . . . . . . . . . . . . . . . . . . . 110
8.6.5 Carácter de Fondo . . . . . . . . . . . . . . . . . . . . 112
8.7 Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8.7.1 Entrada con Formato . . . . . . . . . . . . . . . . . . 113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.8.1 Opciones en la entrada . . . . . . . . . . . . . . . . . . 114
8.8.2 Atributos de la terminal . . . . . . . . . . . . . . . . . 116
8.8.3
¿Cómo se usa? . . . . . . . . . . . . . . . . . . . . . . 117
¿Cómo borrar ventanas y líneas? . . . . . . . . . . . . . . . . 119
8.9
8.10 Actualización de la imagen an la terminal
. . . . . . . . . . . 120
8.11 Atributos de vídeo y colores . . . . . . . . . . . . . . . . . . . 122
8.12 Coordenadas del cursor y de las ventanas
. . . . . . . . . . . 126
8.13 Moviéndonos por allí . . . . . . . . . . . . . . . . . . . . . . . 127
8.14 Pads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.15 Soft-labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.16 Miscelánea
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.17 Acceso de Bajo Nivél . . . . . . . . . . . . . . . . . . . . . . . 131
8.18 Volcado de Pantalla . . . . . . . . . . . . . . . . . . . . . . . 131
8.19 Emulación Termcap . . . . . . . . . . . . . . . . . . . . . . . 131
8.20 Funciones Terminfo . . . . . . . . . . . . . . . . . . . . . . . . 132
8.21 Funciones de Depurado
. . . . . . . . . . . . . . . . . . . . . 133
8.22 Atributos Terminfo . . . . . . . . . . . . . . . . . . . . . . . . 133
8.22.1 Atributos Lógicos . . . . . . . . . . . . . . . . . . . . . 133
8.22.2 Números . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.22.3 Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . 135
. . . . . . . . . . . . 143

8.23 Esquema de las Funciones de [N]Curses

ÍNDICE GENERAL

5

9 Programación de los Puertos de E/S

147
9.1 Programación del Ratón . . . . . . . . . . . . . . . . . . . . . 149
9.2 Programación del Módem . . . . . . . . . . . . . . . . . . . . 150
9.3 Programación de la Impresora . . . . . . . . . . . . . . . . . . 150
9.4 Programación del Joystick . . . . . . . . . . . . . . . . . . . . 150

10 Conversión de Aplicaciones a Linux

151
10.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
10.2 Gestión de Señales . . . . . . . . . . . . . . . . . . . . . . . . 152
10.2.1 Señales en SVR4, BSD, y POSIX.1 . . . . . . . . . . . 152
10.2.2 Opciones de Señales en Linux . . . . . . . . . . . . . . 153
10.2.3 signal en Linux . . . . . . . . . . . . . . . . . . . . . . 154
10.2.4 Señales soportadas por Linux . . . . . . . . . . . . . . 154
. . . . . . . . . . . . . . . . . . . . . . . . . 154
. . . . . . . . . . . . . . . 155
10.4.1 Rutinas kvm . . . . . . . . . . . . . . . . . . . . . . . 156
10.4.2 ptrace y el sistema de ficheros /proc
. . . . . . . . . . 156
10.4.3 Control de Procesos en Linux . . . . . . . . . . . . . . 156
. . . . . . . . . . . . . . . 157
10.5 Compilación Condicional Portable
10.6 Comentarios Adicionales . . . . . . . . . . . . . . . . . . . . . 159

10.3 E/S de Terminal
10.4 Control e Información de Procesos

11 Llamadas al sistema en orden alfabético

12 Abreviaturas

161

167

• Copyright

capítulo

8

es

1995 de Sven van der Meer

La Guía Linux de Programación es c 1994, 1995 de Sven Goldt
Sven Goldt, Sachsendamm 47b, 10829 Berlín, Alemania
< [email protected] − berlin.de > .
c 1994,
El
< [email protected] − berlin.de > .
El capítulo 6 es c 1995 de Scott Burkett < scottb@IntN et.net > .
El
[email protected] > .
Tenemos que dar especialmente las gracias a John D. Harper
< [email protected] > por revisar en profundidad esta guía.
Se concede permiso para reproducir este documento, en todo o en
parte, bajo las siguientes condiciones:

de Matt Welsh <

c 1994,

1995

capítulo

10

es

1. Esta nota de Copyright debe incluirse sin modificaciones.

2. Comparta con los autores cualquier ganancia que obtenga.

3. Los autores no se hacen responsables de cualquier daño producido

en aplicación de los contenidos de este libro.

• Copyright (nota original)

The Linux Programmer’s Guide is c 1994, 1995 by Sven Goldt
Sven Goldt, Sachsendamm 47b, 10829 Berlin, Germany
< [email protected] − berlin.de > .
Chapter 8 is c 1994, 1995 by Sven van der Meer < [email protected]
berlin.de > .
Chapter 6 is c 1995 Scott Burkett < scottb@IntN et.net > .
Chapter 10 is c 1994, 1995 Matt Welsh < [email protected] > .
Special thanks goes to John D. Harper < [email protected] > for
proofreading this guide.
Permission to reproduce this document in whole or in part is subject
to the following conditions:

1. The copyright notice remains intact and is included.

2. If you make money with it the authors want a share.

3. The authors are not responsible for any harm that might arise by

the use of it.

• Notas sobre la versión castellana

Esta guía, como cuarto trabajo importante del Proyecto LuCAS, obe-
dece a la demanda de guías de programación para Unix/Linux que ve-
nimos observando desde tiempos recientes. Sin embargo, lamentamos
que nuestra traducción sea tan incompleta como la versión original en
Inglés: ciertamente nos gustaría completarla, sin embargo no hemos

6

ÍNDICE GENERAL

7

podido recibir los permisos necesarios para ello de algunos de sus au-
tores originales, al estar actualmente ilocalizables. El proyecto LuCAS
agradece el trabajo de traducción realizado inicialmente por Pedro Pa-
blo Fábrega1, que abarca buena parte del libro. Además, agradecemos
la colaboración prestada por Ignacio Arenaza, César Ballardini y Luis
Francisco González2, quienes se han ocupado de la traducción del resto
del libro.
Nota: Versión de la traducción: 0.11 alpha
Juan José Amor3, Mayo de 1998.

• Prólogo

Esta guía está lejos de completarse.
La primera edición fue la versión 0.1, de septiembre de 1994. Se basó en
las llamadas al sistema debido a la escased de información al respecto.
Está previsto completarla con la descripción de las funciones de librería
y cambios importantes en el núcleo, así como incursiones en áreas
como redes, sonido, gráficos y entrada/salida asíncrona. Asímismo, se
incluirán en un futuro apuntes sobre cómo construir librerías dinámicas
y acerca de interesantes herramientas para el programador.
Esta guía solo será un éxito gracias a la ayuda en forma de información
o de envío de nuevos capítulos.

• Introducción

En cierta ocasión me dispuse a instalar Linux en mi PC para aprender
más acerca de administración del sistema. Intenté instalar un servidor
de SLIP pero no trabajé con mgetty ni con el shadow. Tuve que par-
chear el sliplogin y funcionó hasta las nuevas versiones de Linux 1.1.
Nadie me explicó qué había pasado. No había documentación acer-
ca de los cambios desde e
  • Links de descarga
http://lwp-l.com/pdf1317

Comentarios de: Guía Linux de Programación (GULP) v.04 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad