Libslack

Una biblioteca UNIX / C de utilidades generales para programadores con holgura
Descargar ahora

Libslack Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • GPL
  • Precio:
  • FREE
  • Nombre del editor:
  • Libslack Team
  • Sitio web del editor:
  • http://libslack.org/
  • Sistemas operativos:
  • Mac OS X 10.3.2 or later
  • Tamaño del archivo:
  • 325 KB

Libslack Etiquetas


Libslack Descripción

Una biblioteca UNIX / C de utilidades generales para programadores con holgura LibsLack es una biblioteca gratuita y de código abierto de utilidades generales que harán que la programación UNIX / C sea un poco más fácil en el ojo. Aquí hay algunas características clave de "LibsLack": Marco del programa: · Las partes "Marco" de Libslack están obligadas a ser las más objetables. A nadie le gustan los marcos. No te preocupes, no hay mucho que hacerlo. Si no te gusta, finge que no está allí. . También se proporciona una mensajería de depuración y verbosa y está habilitada por el uso de las opciones de línea de comandos "estándar" --debug y --verbuge. · Los mensajes (incluidos los mensajes de error, depuración y verbos) se proporcionan con sintaxis de llamadas limpias y semántica flexible. Los mensajes se pueden dirigir a los archivos de registro, los descriptores de archivos, syslog o multiplexados a cualquiera de los anteriores (y a cualquier otro lugar (páginas de diálogo) si implementa sus propios manejadores de mensajes) sin complicar la sintaxis de la llamada. · ISO C impone restricciones extremas en los manipuladores de señales. POSIX impone restricciones menos extremas pero aún molestas. LibsLack contiene funciones que proporcionan un nivel de abstracción entre los manejadores de señales que escribe y los manejadores de señal reales (compatibles con ISO C). Esto le permite escribir manipuladores de señal sin restricciones. · La persistencia de grano grueso de la información de configuración simple es proporcionada por el uso de archivos de propiedades de estilo Java en ubicaciones "conocidas". Servicios de demonio: · LibsLack proporciona funciones que hacen que la escritura sea trivial. Incluye funciones para convertirse en un demonio y crear opcionalmente un archivo PID bloqueado para asegurarse de que solo una única instancia de un demonio con nombre se activa al mismo tiempo. La función Daemon se comporta adecuadamente si el proceso del cliente se inicia con INIT (8) o INETD (8). También hay funciones para optimizar el análisis de archivos de configuración simples (como los que se encuentran comúnmente en el directorio / etc). También hay funciones que lo ayudan a escribir más demonios seguros (I.E. Revocar privilegios SETUID / SETGID, Evitar la generación de archivos básicos, cambiar de usuario y grupo, probar la seguridad de una ruta de archivo dada). También hay funciones para verificar si un daemon con nombre está funcionando y para detenerlo. Servicios de red: · LibsLack proporciona funciones para simplificar la implementación de servidores de red y clientes (TCP, UDP, unidst y multidifusión) y los protocolos de aplicación (texto o binario) que utilizan. Los servidores de red y los clientes se pueden configurar en una sola línea de código. Hay soporte transparente para direcciones de socket de dominio IPv4, IPv6 y UNIX. Hay apoyo para la confiabilidad en UDP. Los protocolos de texto se implementan mediante secuencias de esperar y enviar funciones. Los paquetes de protocolo binarios se pueden embalar y desempaquetar (utilizando funciones similares a Pack () y desempaquetar () en Perl, pero en la red / almacenamiento amigable). También hay una función para enviar correo. Programación orientada al agente: · LibsLack proporciona un modelo de programación orientado al agente genérico en forma del tipo de datos del agente. Como los objetos, los agentes pueden reaccionar a estímulos externos. A diferencia de los objetos, los agentes también pueden tomar acciones independientes. Esto se realiza mediante la multiplexación de eventos de E / S en los descriptores de archivos arbitrarios que usan los temporizadores de encuesta () o seleccione () y también multiplexante para las acciones de programación. Conectar y desconectar los descriptores de archivos se realiza en tiempo constante. La programación y las acciones de cancelación se realizan en tiempo constante. El mantenimiento del temporizador se realiza en un tiempo promedio constante. Esto significa que los agentes son escalables con respecto al número de temporizadores sobresalientes y pueden respaldar miles de acciones programadas. Se puede usar un solo agente como un simple bucle de eventos, o múltiples agentes se pueden conectar entre sí en redes arbitrarias a través de múltiples subprocesos, procesos y / o hosts. Un solo agente no es escalable con respecto al número de descriptores de archivos conectados, pero se pueden combinar varios agentes para lograr una escalabilidad mucho mayor. Son útiles para aplicaciones en red, sistemas distribuidos y simulaciones. Tipos de datos: · LIBSLACK proporciona una lista de datos de matriz de puntero con puntero genérico, un tipo genérico de datos de tabla de hash llamado mapa y un tipo de datos de cadena decente que viene con montones de funciones (muchos se elevan desde PERL). También hay tipos de datos de lista abstractos individuales y doblemente vinculados con freelistas opcionales, "con crecimiento". Seguridad de hilo desacoplada: · LIBSLACK proporciona el tipo de datos del casillero que las estrategias de sincronización del hilo de los descuentos del Código del cliente. Esto permite que se escriba Código que delegue la elección de la estrategia de sincronización al cliente. Esto permite la selección de tiempo de ejecución de estrategias de bloqueo, lo que significa que es incluso posible dejar que el usuario final especifique qué estrategia de bloqueo debe usar. Admite las cerraduras de exclusión mutua, los lectores / bloqueos de escritor y sin bloqueo. También hay versiones de depuración que imprimen mensajes a la salida estándar para ayudar a los clientes a localizar puntos muertos. Consulte http://raf.org/papers/mt-disciplined.html. Coprocesos y pseudo terminales: · LibsLack proporciona funciones para crear pseudo terminales pingablemente y para crear coprocesos que usan tuberías o un pseudo terminal para la comunicación con el proceso del cliente. Diverso: · LibsLack contiene funciones de conveniencia / abreviatura para cosas aleatorias, como leer una línea de texto con cualquier extremo de línea (UNIX, DOS o Macintosh), FIFO y control de archivos, recuperando los límites de POSIX.1, analizando las instalaciones de Syslog / pares de prioridades, la asignación dinámica de Arreglos multidimensionales, grupos de memoria, memoria segura, grupos de memoria segura, también hay una función de clasificación de montones. Y también hay implementaciones de gnu getopt_long (), strlcat (), strlcpy (), snprintf (), vsnprintf (), vsscanf (), asprinf () y vasprintf () para sistemas que no tienen. API de bajo nivel: · Aunque hay mucha funcionalidad en Libslack, la API en sí es lo más baja posible. No hay estructuras de datos gratuitas que envuelvan las estructuras de datos perfectamente aceptables que proporcionan el sistema. Por ejemplo, las funciones de redes no devuelven algún objeto de socket cultivado en casa. Devuelven los descriptores de archivos, como las llamadas subyacentes del sistema. La API de coprocess es similar en espíritu a POPEN (3) y PCLOSE (3). La función FGETLINE (3) interactiva perfectamente con E / S estándar. Los errores se devuelven a través de ERRNO, al igual que las llamadas del sistema y algunas funciones de la biblioteca estándar. Es posible que no le guste Errno si escribe programas roscados, pero pensé que hasta que Errno desaparece, es mejor aceptarlo y encontrar una manera de beneficiarse de él. Desviodiblemente, el módulo de cadena envuelve un objeto alrededor de los punteros de carácter perfectamente buenos, pero el puntero de caracteres subyacentes siempre es accesible y muchas de las funciones de cadena tienen versiones que funcionan en cadenas C ordinarias. · El propósito de este diseño es la pereza. Significa que no tengo que envolver todas las llamadas del sistema relacionadas netas o la función de cadena estándar en una función adicional y no tiene que aprender una carga de nuevos identificadores de funcionalidad que ya sabe cómo acceder. Lo mismo ocurre con los códigos de error. No quiero volver a inventarlos y no necesitas volver a aprenderlos. También significa que las funciones de LibsLack se pueden incorporar más fácilmente a los programas existentes para mejorar su funcionalidad sin grandes reescrituras de código y sin la necesidad de una curva de aprendizaje empinada. Documentación precisa: · Cada módulo tiene una manage que explica cada función en detalle. Las firmas de la función en las PUNTAS se revisan sistemáticamente contra el código fuente para asegurarse de que nunca se salgan de la sincronización. · Hay muchos ejemplos en las PUNTOS. La mayoría de ellos se compilan sistemáticamente y se ejecutan para asegurarse de que nunca se salgan de sincronización con el código fuente. · El texto real de las HANPAGES no se puede verificar sistemáticamente, pero lo hace corrige regularmente. Si encuentra algún error de cualquier tipo en la documentación, hágamelo saber. · Toda la documentación toma la forma de las manguiones porque las manguiones son más rápidas y accesibles que cualquier otra cosa. Pruebas exhaustivas: · LibsLack está bien probado. Esto no significa que no haya errores, pero sí significa que hay una gran lista de errores que no tiene. Excluyendo el módulo SNPRINTF, hay casi 2,800 pruebas. Incluido el módulo SNPRINTF, hay casi 150,000 pruebas. Estas pruebas también sirven como ejemplos adicionales.


Libslack Software relacionado