logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

io_fd_flags - prepare descriptor for io_wait

Description

       io_fd_flags behaves just like io_fd, but certain flags can be bitwise-ORed to it to alter its behavior:

       IO_FD_CANWRITE
              tell  io_fd  that  the  descriptor  is  writable.   This  is  useful so io_wantwrite can queue the
              descriptor immediately and there is  no  need  to  query  the  operating  system  event  reporting
              mechanism.

       IO_FD_BLOCK
              tell io_fd that the descriptor is blocking.

       IO_FD_NONBLOCK
              tell io_fd that the descriptor is non-blocking.

       Normally,  io_fd  calls fcntl to ask the operating system whether the descriptor is blocking or not.  The
       frameworks needs to know because it alters how io_tryread and io_trywrite handle the socket.  Never  pass
       both IO_FD_BLOCK and IO_FD_NONBLOCK at the same time.

       Newly  connected  stream  sockets  are always writable if the connection is established, so it is usually
       safe to pass IO_FD_CANWRITE.  The main exception case where IO_FD_CANWRITE should not be passed is  on  a
       non-blocking  socket where a connect() is pending.  Then you need to poll for writability to get notified
       when the connection is established.

Name

       io_fd_flags - prepare descriptor for io_wait

Return Value

       io_fd_flags returns 1 on success, 0 on error.

See Also

io_fd(3), io_fd_canwrite(3)

                                                                                                  io_fd_flags(3)

Syntax

#include<libowfat/io.h>

       int io_fd(int64 fd);

       #ifdef HAVE_IO_FD_FLAGS

       int io_fd_flags(int64 fd);

See Also