[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Programación C/C++ en Linux



Aunque sea un "comando de consola" como dices, "tar" es más bien una aplicación y no está tan vinculada al sistema como "mount", que está relacionado con el kernel, o las funciones de la librería estándar de C o las funciones estándar POSIX.

En cualquier caso, para programar en Linux necesitas los paquetes de software con las librerías y los ficheros de cabecera para desarrollar (en Debian son paquetes cuyo nombre acaba con el sufijo "-dev"). Por ejemplo, la aplicación de archivado "tar" (paquete Debian) dispone de una librería denominada "libtar" (paquete Debian) con la que se puede acceder a sus funciones desde un programa en C. Para poder compilar un programa que utilice esta librería es necesario el paquete para desarrollo, denominado "libtar-dev" (paquete Debian también).

La mayoría de las utilidades más básicas (y muchas otras no tan básicas) tienen una librería asociada y un paquete de desarrollo (acabado en "-dev") con los archivos de cabecera y los ficheros de librería necesarios para programar. Es costumbre en el mundo UNIX programar las aplicaciones pensando primero en librerías que implementan y modularizan la funcionalidad más importante del programa y que se puedan aprovechar para otros programas. Luego, el programa principal (por ejemplo "tar") se desarrolla usando la librería (libtar) de manera que el programa en sí queda bastante pequeño y fácil de manejar, pues consiste básicamente en llamadas a las funciones de la librería de apoyo desarrollada. Más tarde se puede usar la librería para hacer un "tar" más potente, una versión con interfaz gráfica, integrar sus capacidades en otros programas, etc. Como te digo es una costumbre del mundo de la programación UNIX muy inteligente desde mi punto de vista, pues evita reinventar la rueda y permite aprovechar el desarrollo de otros para construir aplicaciones más potentes.

Espero no haberme enrollado mucho y que te haya dado una idea de cómo tienes que buscar las librerías con las funciones para usar distintas utilidades comunes en Linux (ya sabes, busca si existe un paquete "lib*-dev" asociado, y muchas veces vienen con documentación separada en un paquete "lib*-doc").

Un saludo.


Manuel Parrilla escribió:
Hola lista

Estoy empezando a programar con C/C++ en Linux,
aunque ya tengo alguna experiencia con este lenguaje
en otro sistema operativo. Mi pregunta es acerca de los
recursos disponibles en Linux y más concretamente de
las librerías de funciones y clases. Me podéis indicar
alguna buena referencia en Internet.

Otra duda que me surge es con los comandos de consola.
Hay algunos que parece que se pueden usar directamente como
funciones, tras incluir los archivos de cabecera adecuados,
como por ejemplo los comandos "mount" y "umount".
Sin embargo hay otros como el comando "tar" que por más
que he buscado, no he encontrado tal función, aunque existe
el archivo tar.h. Conozco la posibilidad de utilizar el comando
mediante una llamada al sistema, pero mi duda es que si
Linux está programado en C, como es que no están disponibles
los comandos en forma de funciones de C. Si alguien me puede
arrojar alguna luz en este tema y sobre la forma de funcionar
con dichos comandos, le estaré muy agradecido.

Muchas gracias por adelantado y un saludo.

Manuel Parrilla.





Reply to: