termkey_advisereadable man page

termkey_advisereadable — read more bytes from the underlying terminal


#include <termkey.h>

TermKeyResult termkey_advisereadable(TermKey *tk);

Link with -ltermkey.


termkey_advisereadable() informs the termkey(7) instance that new input may be available on the underlying file descriptor and so it should call read(2) to obtain it. If at least one more byte was read it will return TERMKEY_RES_AGAIN to indicate it may be useful to call termkey_getkey(3) again. If no more input was read then TERMKEY_RES_NONE is returned. If there was no buffer space remaining, then TERMKEY_RES_ERROR is returned with errno set to ENOMEM. If no filehandle is associated with this instance, TERMKEY_RES_ERROR is returned with errno set to EBADF.

This function, along with termkey_getkey(3) make it possible to use the termkey instance in an asynchronous program. To provide bytes without using a readable file handle, use termkey_push_bytes(3).

For synchronous usage, termkey_waitkey(3) performs the input blocking task.

Return Value

termkey_advisereadable() returns one of the following constants:

At least one byte was read.
No nore bytes were read.
An IO error occured. errno will be preserved. If the error is EINTR then this will only be returned if TERMKEY_FLAG_EINTR flag is not set; if it is then the IO operation will be retried instead.

See Also

termkey_getkey(3), termkey_waitkey(3), termkey_set_waittime(3), termkey(7)

Referenced By

termkey(7), termkey_get_buffer_remaining(3), termkey_getkey(3), termkey_new(3), termkey_push_bytes(3).