Guard: A interceptação de sinais não está funcionando no Windows

Criado em 6 mai. 2011  ·  3Comentários  ·  Fonte: guard/guard

Conforme discutido aqui e aqui

bug

Comentários muito úteis

LOL, aqui está uma lista completa de sinais suportados e melhores práticas documentadas para contornar o resto. Divirta-se! ^ _ ^;

Todos 3 comentários

você quer dizer que uma especificação para interoperabilidade entre sistemas operacionais unix derivados não está sendo seguida por um sistema operacional com um histórico quase totalmente desconectado do unix? Sim, não, parece certo. ;)

Os sinais Posix geralmente não estão disponíveis no Windows, tanto quanto eu sei. Existe um subsistema oficialmente suportado com um subconjunto variado de APIs POSIX, mas aparentemente apenas se você comprar as versões enterprise ou ultimate do vista / win7. Isso inclui a capacidade de escrever software que suporte sinais POSIX (mas não suporte automático deles). Inferno, o Windows Unix corporativo ... coisa ... até tem uma porta debian antiga e aparentemente sem manutenção que o tem como alvo. Que tal isso para aterrorizante?

De qualquer forma, voltando ao rubi. A porta inicial foi feita usando cygwin. Cygwin é uma camada de compatibilidade POSIX e UNIX geral absolutamente massiva que sacrifica o desempenho, o tamanho do tempo de execução e a funcionalidade como o custo da compatibilidade. No entanto, ele fornece uma riqueza absoluta de conforto unix em um território hostil. Não me surpreenderia nem um pouco se a interceptação de sinal funcionasse bem no Windows, contanto que você usasse um rubi baseado em cygwin.

O instalador original do Windows com um clique fez uso do Visual Studio 6, que é um antigo dinossauro. O instalador atual do Windows com um clique usa mingw e msys. Nenhum dos dois suportaria sinais posix, mas não sei muito mais do que isso. Dei uma olhada, vi um "gcc.bat" e "make.bat" e fiquei muito triste.

Como um aparte, ISO C99 define um pequeno número de sinais não-posix que os implementadores são obrigados a suportar, mas os únicos dois que podem ser capturados por meio de um manipulador de saída são SIGINT e SIGTERM (pelo menos de acordo com as especificações, e todos nós sabemos como muito da Microsoft adora estar em conformidade com os padrões).

LOL, aqui está uma lista completa de sinais suportados e melhores práticas documentadas para contornar o resto. Divirta-se! ^ _ ^;

Obrigado por sua pesquisa, acho que precisamos encontrar uma solução alternativa e pular sinais no windows :)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

greyblake picture greyblake  ·  18Comentários

lastobelus picture lastobelus  ·  5Comentários

tomrossi7 picture tomrossi7  ·  6Comentários

bgentry picture bgentry  ·  10Comentários

Odaeus picture Odaeus  ·  21Comentários