Libslack.

uma biblioteca UNIX / C de utilitários gerais para programadores com folga
Baixe Agora

Libslack. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL
  • Preço:
  • FREE
  • Nome do editor:
  • Libslack Team
  • Site do editor:
  • http://libslack.org/
  • Sistemas operacionais:
  • Mac OS X 10.3.2 or later
  • Tamanho do arquivo:
  • 325 KB

Libslack. Tag


Libslack. Descrição

Uma biblioteca Unix / C de utilitários gerais para programadores com folga O libslack é uma biblioteca de fontes gerais gratuitas e abertas de utilitários gerais que tornarão a programação Unix / C um pouco mais fácil no olho. Aqui estão algumas características principais de "libslack": Quadro de Programa: · A "estrutura" partes do libslack são obrigadas a serem mais censuráveis. Ninguém gosta de estruturas. Não se preocupe, não há muito a isso. Se você não gosta, finja que não está lá. · A LIBSLack fornece a capacidade de identificar-se, executar o processamento da opção de linha de comando em uma única linha de código e produzir mensagens de estilo GNU "padrão" - Help e mensagens de uso. A depuração e a mensagem detalhada também são fornecidas e são ativadas pelo uso de opções de linha de comando "padrão" --Debug e --verbose. · As mensagens (incluindo erro, depuração e mensagens detalhadas) são fornecidas com sintaxe de chamada limpa e semântica flexível. As mensagens podem ser direcionadas para registrar arquivos, descritores de arquivos, syslog ou multiplexados a qualquer um dos itens acima (e para qualquer outro lugar (por exemplo, caixas de diálogo) se você implementar seus próprios manipuladores de mensagens) sem complicar a sintaxe de chamada. · ISO C impõe restrições extremas aos manipuladores de sinal. Posix impõe restrições menos extremas, mas ainda irritantes. O libslack contém funções que fornecem um nível de abstração entre os manipuladores de sinal e os manipuladores de sinal reais (compatíveis com ISO C). Isso permite que você escreva manipuladores de sinal irrestritos. · Persistência grávida grossa de informações simples de configuração é fornecida pelo uso de arquivos de propriedades do estilo Java em locais "conhecidos". Serviços Daemon: · O libslack fornece funções que tornam a escrita doseemons triviais. Ele inclui funções para se tornarem um daemon e, opcionalmente, criar um arquivo PID bloqueado para garantir que apenas uma única instância de um daemon nomeado seja ativa ao mesmo tempo. A função daemon se comporta apropriadamente se o processo do cliente for iniciado por init (8) ou INETD (8). Há também funções para agilizar a análise de arquivos de configuração simples (como aqueles comumente encontrados no diretório / etc). Há também funções que ajudam você a escrever doseemons mais seguros (isto é, revogar privilégios SetuID / SetGid, impedir a geração de arquivos principais, alterar o usuário e o grupo, teste a segurança de um determinado caminho de arquivo). Há também funções para verificar se um daemon nomeado está sendo executado e para pará-lo. Serviços de rede: · A LIBSLack fornece funções para simplificar a implementação de servidores de rede e clientes (TCP, UDP, Unicast e Multicast) e os protocolos (texto ou binário) que eles usam. Servidores de rede e clientes podem ser configurados em uma única linha de código. Há suporte transparente para endereços de soquete de domínio IPv4, IPv6 e UNIX. Há suporte para confiabilidade sobre o UDP. Protocolos de texto são implementados por seqüências de esperar e enviar funções. Os pacotes de protocolo binário podem ser embalados e descompactados (usando funções semelhantes ao pacote () e descompactar () no Perl, mas na rede / armazenamento amigável). Há também uma função para enviar e-mail. Programação orientada ao agente: · O libslack fornece um modelo de programação orientado pelo agente genérico na forma do tipo de dados do agente. Como objetos, os agentes podem reagir a estímulos externos. Ao contrário dos objetos, os agentes podem também tomar ações independentes. Isso é realizado por meio de eventos de E / S de multiplexação em descritores de arquivos arbitrários usando pesquisas () ou selecione () e também temporizadores de multiplexação para agendamento de ações. Conectando e desconectar os descritores de arquivos é feito em tempo constante. Agendamento e cancelamento de ações é feito em tempo constante. A manutenção do temporizador é realizada em tempo médio constante. Isso significa que os agentes são escalonáveis em relação ao número de temporizadores pendentes e podem suportar milhares de ações programadas. Um único agente pode ser usado como um loop de eventos simples, ou vários agentes podem ser conectados uns aos outros em redes arbitrárias em vários segmentos, processos e / ou hosts. Um único agente não é escalável em relação ao número de descritores de arquivos conectados, mas vários agentes podem ser combinados para obter escalabilidade muito maior. Eles são úteis para aplicativos em rede, sistemas distribuídos e simulações. Tipos de dados: · O libslack fornece um tipo de dados de matriz de ponteiro genérico de ponteiro genérico chamado lista, um tipo de dados de tabela de hash genérico genérico chamado mapa e um tipo de dados de cadeia decente que vem com montes de funções (muitos levantados do Perl). Há também tipos de dados de lista de singly e duplamente vinculados duplamente com freelistas opcionais e "clássicos". Segurança dissociada de rosca: · Libslack fornece o tipo de dados Locker que separa estratégias de sincronização de segmento de código do cliente. Isso permite que o código a ser escrito que os delegados a escolha da estratégia de sincronização para o cliente. Isto permite executar a seleção tempo de estratégias de bloqueio que significa que é possível até mesmo permitir que o usuário final especificar qual a estratégia de bloqueio para uso. Ele suporta bloqueios de exclusão mútua, leitores / travas escritor e nenhum bloqueio. Há também versões de depuração que as mensagens de impressão para a saída padrão para os clientes ajudar a localizar os impasses. Veja http://raf.org/papers/mt-disciplined.html. Coprocesses e pseudo terminais: · Libslack fornece funções de criação de pseudo terminais portably e para a criação de coprocesses que usam tubos ou um pseudo-terminal para a comunicação com o processo de cliente. Diversos: · Libslack contém Conveniência / taquigrafia funções para coisas aleatórias, como ler uma linha de texto com qualquer linha que termina (UNIX, DOS ou Macintosh), FIFO e controle de arquivos, recuperando limites POSIX.1, análise de pares de instalação / prioritárias syslog, alocação dinâmica de arrays multi-dimensionais, pools de memória, memória segura, piscinas memória segura Há também uma função sort heap. E há também implementações de GNU getopt_long (), strlcat (), strlcpy (), snprintf (), vsnprintf (), vsscanf (), asprinf () e vasprintf () para sistemas que não os têm. Low Level API: · Embora haja uma série de funcionalidades em libslack, a própria API é tão baixo nível possível. Não há estruturas de dados gratuitos que estruturas envoltório de dados ao redor perfeitamente aceitáveis que são fornecidos pelo sistema. Por exemplo, as funções de rede não retornar algum casa cresceu soquete objeto. Eles voltam descritores de arquivos como subjacente chamadas do sistema. A API coprocess é semelhante no espírito a popen (3) e pclose (3). A função fgetline (3) Opera perfeitamente com o padrão de E / S. Erros são retornados via errno como chamadas de sistema e algumas funções da biblioteca padrão. Você pode não gostar errno se você escrever programas com rosca, mas achei que até errno vai embora, é melhor aceitá-lo e encontrar uma maneira de beneficiar-se dele. Inevitavelmente, o módulo string faz embrulhar um objeto em torno perfeitamente bons ponteiros de char mas o ponteiro de char subjacente está sempre acessível e muitas das funções de string tem versões que trabalhar em cadeias de caracteres C comuns. · O objetivo deste projeto é a preguiça. Isso significa que eu não tenho para embrulhar cada chamada sistema relacionado net ou função string padrão em uma função extra e você não tem que aprender uma carga de novos identificadores para a funcionalidade que você já sabe como acesso. O mesmo vale para os códigos de erro. Eu não quero reinventar-los e você não precisa re-aprender-los. Isso também significa que as funções libslack pode ser mais facilmente incorporado em programas existentes para melhorar a sua funcionalidade sem grandes regravações de código e sem a necessidade de uma curva de aprendizagem. Documentação precisa: · Cada módulo tem uma página de manual que explica todas as funções em detalhes. As assinaturas de função nas manpages são sistematicamente verificados contra o código-fonte para se certificar de que eles nunca ficar fora de sincronia. · Há uma abundância de exemplos nas manpages. A maioria deles são sistematicamente compilado e executado para se certificar de que eles nunca ficar fora de sincronia com o código fonte. · O texto real das páginas de manual não pode ser sistematicamente verificados mas fica Reveja regularmente. Se você encontrar algum erro de qualquer tipo na documentação, por favor me avise. · Toda a documentação assume a forma de manpages porque manpages são mais rápidos e mais acessível do que qualquer outra coisa. Teste completo: · Libslack é testado. Isso não significa que não há erros, mas isso não significa que há uma grande lista de bugs que ele não tem. Excluindo o módulo snprintf, existem cerca de 2800 testes. Incluindo o módulo snprintf, existem cerca de 150,000 testes. Estes testes também servem como exemplos adicionais.


Libslack. Software Relacionado

jsonpickle.

Biblioteca Python para serializante qualquer gráfico de objeto arbitrário em JSON ...

174 14 KB

Download