What does “No anode” mean in errno 55 when socket connection fails?

Steve O'Hara-Smith steve at sohara.org
Sun Dec 27 18:00:47 UTC 2020

On Sun, 27 Dec 2020 23:03:17 +0530
Rahul Bharadwaj <rahulbharadwajpromos at gmail.com> wrote:

> I was doing a few performance tests on a local server and once in a while
> I hit an error where opening a socket connection fails.
> i.e. considering the simplest code:
> #include <errno.h>
> #include <sys/socket.h>
> int main() {
>     /* code to create socket object */
>     int ret = connect(sock, (struct sockaddr *)&serv_addr,
> sizeof(serv_addr));
>     if (ret < 0) {
>         fprintf(stderr, "connect() failed with: %d\n", errno); // <----
> *get errno as 55*
>         exit(1);
>     }
>     /* other code */
> }
> There is no explanation for this error number "55". In every place, the
> only mention is "No anode". There is no mention of what "anode" means and
> what "No anode" specifically means.

	I have no idea where you got that "No anode" from, let alone what
it means (no inode I could perhaps understand but not in this context). For
many things (including this) the best documentation is in the man pages
that are on the system.

> Can someone please help me with what this errno means or point me to some
> documentation explaining the same.

man errno

	Is where you will find the error numbers described in some detail,
the entry for error number 55 is:

     55 ENOBUFS No buffer space available. An operation on a socket or pipe
             was not performed because the system lacked sufficient buffer
             space or because a queue was full.

	There is an enormous amount of documentation in the man pages, it's
almost all reference style documentation which makes figuring out where to
look harder than it should be (man -k <keyword> for keyword searches helps
somewhat) - OTOH nobody has found a good solution to that in all the
decades I've been using unices.

Steve O'Hara-Smith <steve at sohara.org>

More information about the freebsd-questions mailing list