PROGRAMACIÓN LINUX

PROGRAMACIÓN LINUX

MATTHEW, NEIL / STONES, RICHARD

58,60 €
IVA incluido
Editorial:
ANAYA MULTIMEDIA, S.A.
Año de edición:
2008
ISBN:
978-84-415-2442-2
Páginas:
848
Encuadernación:
Otros
Colección:
DE PROGRAMADORES, PARA PROGRAMADORES

Disponibilidad:

  • Calle Doce de OctubreConsulte disponibilidad
  • Calle Valeriano MirandaConsulte disponibilidad

Agradecimientos

Sobre los autores



Prólogo



Introducción

A quién va dirigido este libro

De qué trata el libro

Qué necesita para usar este libro

Licencia Pública General GNU

Convenciones

Código fuente



1. Primeras nociones

Introducción a UNIX, Linux y GNU

¿Qué es UNIX?

Breve historia de UNIX

Filosofía UNIX

¿Qué es Linux?

El Proyecto GNU y The Free Software Foundation

Distribuciones Linux

Programar Linux

Programas Linux

Editores de texto

El compilador C

Trazado del sistema de desarrollo

Aplicaciones

Archivos de cabecera

Archivos de biblioteca

Biblioteca estática

Bibliotecas compartidas

Ayuda

Resumen



2. Programación shell

¿Por qué programar con una shell?

Un poco de filosofía

¿Qué es una shell?

Tuberías y redireccionamiento

Redireccionamiento de salidas

Redireccionamiento de entradas

Tuberías

La shell como un lenguaje de programación

Programas interactivos

Creación de un script

Hacer que un script sea ejecutable

Sintaxis shell

Variables

Comillas

Variables de entorno

Variables de parámetro

Condiciones

El comando test o [

Estructuras de control

if

elif

Un problema con las variables

for

while

until

case

Listas

Bloques de sentencias

Funciones

Comandos

break

El comando :

continue

El comando .

echo

eval

exec

exit n

export

expr

printf

return

set

shift

trap

unset

Otros dos comandos útiles y expresiones regulares

Ejecución de comandos

Expansión aritmética

Expansión de parámetros

Here documents

Localización y gestión de errores

Cuestiones gráficas - La utilidad dialog

Unión de todos los conocimientos

Requerimientos

Diseño

Comentarios sobre la aplicación

Resumen



3. Trabajo con archivos

Estructura de archivos Linux

Directorios

Archivos y dispositivos

/dev/console

/dev/tty

/dev/null

Llamadas al sistema y controladores de dispositivos

Funciones de la biblioteca

Acceso a los archivos de bajo nivel

write

read

open

Permisos iniciales

umask

close

ioctl

Otras llamadas al sistema para gestionar archivos

lseek

fstat, stat, y lstat

dup y dup2

La biblioteca estándar E/S

fopen

fread

fwrite

fclose

fflush

fseek

fgetc, getc, y getchar

fputc, putc y putchar

fgets y gets

Entradas y salidas formateadas

printf, fprintf y sprintf

scanf, fscanf, y sscanf

Otras funciones de flujo

Errores de flujo

Flujos y descriptores de archivos

Mantenimiento de archivos y directorios

chmod

chown

unlink, link y simlink

mkdir y rmdir

chdir y getcwd

Escaneo de directorios

opendir

readdir

telldir

seekdir

closedir

Errores

strerror

perror

El sistema de archivos /proc

Temas avanzados: fcntl y mmap

fcntl

mmap

Resumen



4. El entorno Linux

Argumentos de programa

getopt

getopt_long

Variables de entorno

Uso de variables de entorno

La variable environ

Hora y fecha

Archivos temporales

Información sobre el usuario

Información sobre el ordenador central

Registro

Recursos y límites

Resumen



5. Terminales

Leer y escribir en la terminal

Modos canónicos versus modos no canónicos

Gestión de las salidas redireccionadas

Hablando con la terminal

Uso de /dev/tty

Driver de terminal e Interfaz de Terminal General

Perspectiva general

Modelo de hardware

La estructura termios

Modo de entrada

Modos de salida

Modos de control

Modos locales

Caracteres de control especial

Caracteres

Los valores TIME y MIN

Acceso a los modos de terminal desde la shell

Configuración de los modos de terminal desde el incitador de comandos

Velocidad de terminal

Funciones adicionales

Terminal de salida

Tipo de terminal

Identificar el tipo de terminal

Uso de las prestaciones de terminfo

Detectar las pulsaciones de las teclas

Consolas virtuales

Pseudo-terminales

Resumen



6. Gestión de pantallas basadas en texto con curses

Compilación con curses

Terminología y conceptos de curses

La pantalla

Salidas de pantalla

Leer la pantalla

Vaciado de la pantalla

Mover el cursor

Atributos de carácter

El teclado

Modos de teclado

Entradas del teclado

Ventanas

La estructura WINDOW

Funciones generalizadas

Mover y actualizar una ventana

Optimización de las actualizaciones de pantalla

Subventanas

El teclado numérico

Uso del color

Redefinir los colores

Pads

La aplicación de la colección de CD

Inicio de una nueva aplicación sobre una colección de CD

Observación de main

Creación del menú

Manipulación de los archivos de la base de datos

Añadir registros

Actualización de registros

Eliminación de registros

Consultar la base de datos de CD

Resumen



7. Gestión de datos

Gestión de memoria

Distribución de memoria sencilla

Distribuir mucha memoria

Abuso de memoria

El indicador nulo

Liberación de memoria

Otras funciones de distribución de la memoria

Bloqueo de archivos

Creación de archivos de bloqueo

Regiones de bloqueo

El comando F_GETLK

El comando F_SETLK

El comando F_SETLKW

Uso de read y write con el bloqueo

Competir por un bloqueo

Otros comandos de bloqueo

Punto muerto

Bases de datos

La base de datos dbm

Introducción a dbm

Obtención de dbm

Localización de problemas y reinstalación de dbm

Las rutinas dbm

Funciones de acceso dbm

dbm_open

dbm_store

dbm_fetch

dbm_close

Funciones dbm adicionales

dbm_delete

dbm_error

dbm_clearerr

dbm_firstkey y dbm_nextkey

La aplicación de CD

Actualización del diseño

La aplicación de base de datos de CD usando dbm

Resumen



8. MySQL

Instalación

Paquetes MySQL

Configuración

Localización de errores tras la instalación

Administración MySQL

Comandos

myisamchk

mysql

mysqladmin

mysqlbug

mysqldump

mysqlimport

mysqlshow

Crear usuarios y proporcionarles diferentes permisos

grant

revoke

Contraseñas

Creación de una base de datos

Tipos de datos

Booleanos

Carácter

Números

Temporal

Creación de una tabla

Herramientas gráficas

MySQL Querry Browser

MySQL Administrator

Acceso a los datos MySQL desde C

Rutinas de conexión

Gestión de errores

Ejecución de sentencias SQL

Sentencias SQL que no retornan datos

Descubrir qué insertó

Sentencias que retornan datos

Procesar los datos retornados

Funciones varias

La aplicación de la base de datos de CD

Creación de las tablas

Añadir datos

Acceso a los datos de la aplicación a través de C

Definición de interfaz

Comprobación de la interfaz de la aplicación

Ejecución de la interfaz

Resumen



9. Herramientas de desarrollo

Problemas relacionados con varios archivos fuente

El comando make y makefile

La sintaxis de los makefiles

Opciones y parámetros de make

Dependencias

Reglas

Comentarios de un makefile

Macros en un makefile

Objetivos múltiples

Reglas que incorpora make

Sufijos y reglas de diseño

Gestión de bibliotecas con make

Tema avanzado: Makefile y subdirectorios

GNU make y gcc

Control del código fuente

RCS

El comando rcs

El comando ci

El comando co

El comando rlog

El comando rcsdiff

Identificación de revisiones

El comando ident

SCCS

Comparación de RCS y SCCS

CVS

Uso local de CVS

Acceso a CVS a través de una red

CVS front ends

Subversion

Escribir una página de consulta

Distribución de software

El programa patch

Otras opciones de distribución

Paquetes RPM

Los archivos del paquete RPM

Instalación de paquetes RPM

Creación de paquetes RPM

Unir el software

Creación de un archivo RPM spec

Creación de un paquete RPM con rpmbuild

Otros formatos de paquetes

Entornos de desarrollo

KDevelop

Otros entornos

Resumen



10. Depuración

Tipos de errores

Técnicas de depuración generales

Un programa con errores

Inspección de código

Instrumentación

Depurar sin volver a compilar

Ejecución controlada

Depuración con gbd

Inicio de gdb

Ejecutar un programa

Listado de trazas

Examinar variables

Enumerar el programa

Configuración de puntos de interrupción

Aplicar un parche con el depurador

Más información sobre gdb

Más herramientas de depuración

Lint: eliminar todo lo que sobre del programa

Herramientas de llamadas a funciones

ctags

cxref

cflow

Perfilar la ejecución con prof/gprof

Asertos

Depuración de memoria

ElectricFence

valgrind

Resumen



11. Procesos y señales

¿Qué es un proceso?

Estructura de los procesos

La tabla procesos

Visualización de procesos

Procesos del sistema

Planificación de procesos

Inicio de nuevos procesos

Reemplazar una imagen de proceso

Duplicar una imagen de proceso

Esperar a un proceso

Procesos zombie

Redireccionamiento de entradas y salidas

Threads

Señales

Envío de señales

Una interfaz de señales robusta

Conjuntos de señales

Indicadores sigaction

Referencia de señal común

Resumen



12. POSIX threads

¿Qué es un thread?

Ventajas y desventajas de los threads

Un primer programa thread

Ejecución simultánea

Sincronización

Sincronización con semáforos

Sincronización con mutex

Atributos thread

Planificación de atributos thread

Cancelar un thread

Threads en abundancia

Resumen



13. Comunicación entre procesos: tuberías

¿Qué es una tubería?

Tuberías de procesos

popen

pclose

Envío de salidas a popen

Transmitir más datos

Cómo se implementa popen

La llamada pipe

Procesos padre e hijo

Lectura de tuberías cerradas

Tuberías usadas como entradas y salidas estándar

Manipulación de descriptores de archivo por close y dup

Tubería nombrada: FIFO

Acceso a FIFO

Abrir una FIFO con open

O_RDONLY y O_WRONLY sin O_NONBLOCK

O_RDONLY con O_NONBLOCK y O_WRONLY

Leer y escribir FIFO

Tema avanzado: Cliente/servidor usando FIFO

La aplicación de base de datos de CD

Finalidad

Implementación

El archivo de cabecera, cliserv.h

Funciones de interfaz de cliente

El intérprete del cliente

Búsqueda en la base de datos

La interfaz de servidor, server.c

La tubería

Cabecera de implementación de la tubería

Funciones de servidor

Funciones de cliente

Resumen de la aplicación

Resumen



14. Semáforos, memoria compartida y colas de mensajes

Semáforos

Definición de semáforo

Un ejemplo teórico

Prestaciones de los semáforos de Linux

semget

semop

semctl

Uso de semáforos

Memoria compartida

shmget

shmat

shmdt

shmctl

Colas de mensajes

msgget

msgsnd

msgrcv

msgctl

La aplicación de base de datos de CD

Revisión de las funciones del servidor

Revisión de las funciones de cliente

Comandos de estado IPC

Mostrar el estado del semáforo

Mostrar el estado de la memoria compartida

Mostrar el estado de las colas de mensajes

Resumen



15. Sockets

¿Qué es un socket?

Conexiones de sockets

Atributos de los sockets

Dominios socket

Tipos de sockets

Protocolos de sockets

Creación de un socket

Direcciones socket

Denominar a un socket

Creación de una cola de sockets

Aceptación de las conexiones

Solicitud de conexiones

Cerrar un socket

Comunicaciones sockets

Host y ordenación de bytes para redes

Información de red

Internet daemon (xinetd/inetd)

Opciones de sockets

Múltiples clientes

select

Varios clientes

Datagramas

Resumen



16. Programar GNOME usando GTK+

Introducción a X

Servidor X

Cliente X

Protocolo X

Xlib

Kit de herramientas de software

Gestor de ventanas

Otros métodos para crear una GUI - API por ventajascon plataformas independientes

Introducción a GTK+

Sistema del tipo GLib

Sistema de objeto GTK+

Introducción a GNOME

Instalación de las bibliotecas de desarrollo GNOME/GTK+

Eventos, señales y rellamadas

Creación de widgets de cuadro

Widgets GTK+

GtkWindow

GtkEntry

GtkSpinButton

GtkButton

GtkToggleBUtton

GtkCheckButton

GtkRadioButton

GtkTreeView

Widgets GNOME

Menús GNOME

Diálogos

GtkDialog

Un cuadro de diálogo modal

Diálogos no modales

GtkMessageDialog

La aplicación de base de datos de CD

Resumen



17. Programar KDE usando Qt

Introducción a KDE y Qt

Instalación de Qt

Señales y ranuras

Widgets Qt

QLineEdit

Botones Qt

QButton: La clase básica de botón

QPushButton

QCheckBox

QRadioButton

QComboBox

QListView

Diálogos

QDialog

Diálogos modales

Diálogos no modales

Diálogos semimodales

QMessageBox

QInputDialog

Usar qmake para simplificar la creación de makefiles

Menús y barras de herramientas con KDE

Aplicación de base de datos de CD usando KDE/Qt

MainWindow

AddCdDialog

LogonDialog

main.cpp

Resumen



18. Estándares de Linux

El lenguaje de programación C

Una breve lección de historia

La colección de compilación GNU

Opciones gcc

Opciones de compilación para cumplir con los estándares

Opciones de definición para cumplir con los estándares

Opciones de compilación para las advertencias

Interfaces y The Linux Standars Base

Bibliotecas estándar LSB

Una breve lección de historia

Uso del estándar LSB para las bibliotecas

Grupos y usuarios LSB

Inicialización del sistema LSB

El estándar de jerarquíadel sistema de archivos

Más información sobre los estándares

Resumen



Índice alfabético

Esta imprescindible guía le ofrece un enfoque práctico y le proporciona una sencilla introducción al desarrollo de programas para Linux y otros sistemas operativos basados en UNIX. Los autores, expertos programadores de Linux, tratan un gran número de temas con el fin de ayudarle a conocer lo que puede ofrecerle Linux para que pueda obtener un mayor rendimiento de su tiempo de programación y del empleo del sistema Linux.



Con este libro aprenderá a utilizar las bibliotecas Linux C estándar y otras prestaciones, la optimización y eficiencia de las herramientas de desarrollo estándar de Linux, consejos sobre las llamadas básicas al sistema, los archivos E/S, la comunicación interprocesos y la programación shell, la creación de interfaces gráficas de usuario usando GTK+ o kits de herramientas Qt, entre otros muchos aspectos.

Artículos relacionados

  • OFFICE Y COPILOT OPTIMIZA WORD EXCEL POWERPOINT Y TEAMS
    CHEMA GOMEZ
    La Inteligencia Artificial ha transformado las herramientas de Office, convirtiéndolas en asistentes inteligentes que facilitan el trabajo diario.Este libro te guía paso a paso en la integración de la IA en Word, Excel, Powerpoint, Outlook y Teams, mostrando cómo aprovechar al máximo sus funciones avanzadas.? En Word, redacta con mayor precisión gracias al procesamiento de leng...

    27,90 €

  • ENTIENDE LA TECNOLOGÍA
    GENTILE, NATE
    Piénsalo: gracias a los avances tecnológicos podemos hablar con alguien que esté a miles de kilómetros, predecir el tiempo, cruzar el planeta en cuestión de horas, conocer nuestro estado de salud, curar enfermedades graves, acceder al instante a más información de la que nunca seremos capaces de leer... ¡Si incluso hemos conseguido hacer que las máquinas aprendan! ¿Cómo de dif...

    20,90 €

  • CANVA. CURSO COMPLETO
    GÓMEZ, CHEMA
    La guía definitiva y más exhaustiva para dominar Canva, la herramienta de diseño gráfico más accesible y poderosa de nuestros tiempos ...

    19,90 €

  • LA LEY DE LA INTELIGENCIA ARTIFICIAL. PARTE I
    LÓPEZ-AMO SAINZ, ALVARO PABLO
    La extensión del uso la Inteligencia Artificial a un sinfín de actividades de nuestra vida diaria está suponiendo una nueva revolución tecnológica, económica y social. Tal revolución evidencia la necesidad de una regulación legal en la que La Unión Europea, la OCDE y un amplio número de países ya han avanzado.Con un lenguaje claro, didáctico y sin tecnicismos este libro present...

    34,90 €

  • FINAL FANTASY: LEVEL 99
    MARTÍNEZ SUÁREZ, MIGUEL / RUBIO BLÁZQUEZ, NÉSTOR
    Final Fantasy: Level 99 es un bestiario que explora la diversidad de criaturas icónicas de la legendaria saga de videojuegos de Square Enix, desde sus inspiraciones en mitología clásica hasta referencias en la cultura pop y la ciencia-ficción. El libro, coescrito por Miguel Martínez Suárez y Néstor Rubio Blázquez, presenta 99 fascinantes monstruos que han desafiado a los jugado...

    25,95 €

  • MATEMATICAS Y GRAFICOS CON PYTHON
    PRIETO MORLAN
    Con esta obra el lector emprenderá un emocionante viaje a través del mundo de las matemáticas y la visualización de datos utilizando el poderoso lenguaje de programación Python. Este libro no solo ofrece una introducción accesible a los conceptos matemáticos fundamentales, sino que también proporciona las herramientas necesarias para aplicar estos conocimientos a través de la p...

    29,90 €