Здравствуйте.
Есть сетевая библиотека fossa. Она, грубо говоря, предоставляет приятный интерфейс к системному вызову select с плюшками в виде http и много чего еще.
В этой библиотеке есть функция ns_add_sock, которая добавляет дескриптор сокета в select.
И есть функция ns_send, которая, в конечном счете делает send на нужный сокет.
На гитхабе меня уверили, что fossa заработает и с tty. Я открыл tty девайс, передал его дескриптор в ns_add_sock, сделал ns_send. В результате, в пойманном событии NS_SEND узнал, что отправлено -1 байт. Последняя ошибка: «Socket operation on non-socket»
И это при том, что в манах по send написано: The only difference between send() and write(2) is the presence of flags. With a zero flags argument, send() is equivalent to write(2)
И вот в этом месте я в замешательстве. Должна ли работать send на tty-девайсе? В чем еще может быть причина «Socket operation on non-socket»?