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.