t_open()
e seus /dev/tcp
associados e tal fazem parte da interface TLI / XTI , que perdeu a batalha das APIs TCP / IP para os sockets BSD.
No Linux, há um /dev/tcp
dos tipos. Não é um arquivo real ou dispositivo de kernel. É algo especialmente fornecido pelo Bash , e existe apenas para redirecionamentos. Isso significa que, mesmo se alguém criar um recurso /dev/tcp
no kernel, ele será mascarado no uso interativo 99% [*] do tempo pelo shell.
A melhor solução é mudar para soquetes BSD. Desculpe.
Você pode conseguir que a camada de emulação XTI do strxnet funcione, mas é melhor dar o seu tempo para sair do XTI. É uma API morta, sem suporte não apenas no Linux, mas também nos BSDs, incluindo o OS X.
(A propósito, a biblioteca do strxnet nem vai construir nos BSDs, porque depende de LiS , um componente do kernel do Linux.Não vai mesmo configure
em um sistema BSD ou OS X, aparentemente porque também depende do GNU sed.
[*] Eu baseei esse palpite sobre o fato de que o Bash é o shell padrão para usuários não-root em todas as distribuições Linux que eu usei. Você, portanto, tem que sair do seu caminho no Linux, como regra, para obter algo diferente do Bash.