This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

Console

group console_api

Console API.

Functions

int console_init(void)

Initialize console device.

This function should be called once to initialize pull-style access to console via console_getchar() function and buffered output using console_putchar() function. This function supersedes, and incompatible with, callback (push-style) console handling (via console_input_fn callback, etc.).

Returns:

0 on success, error code (<0) otherwise

ssize_t console_read(void *dummy, void *buf, size_t size)

Read data from console.

Parameters:
  • dummy – ignored, present to follow read() prototype

  • buf – buffer to read data to

  • size – maximum number of bytes to read

Returns:

>0, number of actually read bytes (can be less than size param) =0, in case of EOF <0, in case of error (e.g. -EAGAIN if timeout expired). errno variable is also set.

ssize_t console_write(void *dummy, const void *buf, size_t size)

Write data to console.

Parameters:
  • dummy – ignored, present to follow write() prototype

  • buf – buffer to write data to

  • size – maximum number of bytes to write

Returns:

=>0, number of actually written bytes (can be less than size param) <0, in case of error (e.g. -EAGAIN if timeout expired). errno variable is also set.

int console_getchar(void)

Get next char from console input buffer.

Return next input character from console. If no characters available, this function will block. This function is similar to ANSI C getchar() function and is intended to ease porting of existing software. Before this function can be used, console_init() should be called once. This function is incompatible with native Zephyr callback-based console input processing, shell subsystem, or console_getline().

Returns:

0-255: a character read, including control characters. <0: error occurred.

int console_putchar(char c)

Output a char to console (buffered).

Puts a character into console output buffer. It will be sent to a console asynchronously, e.g. using an IRQ handler.

Returns:

<0 on error, otherwise 0.

void console_getline_init(void)

Initialize console_getline() call.

This function should be called once to initialize pull-style access to console via console_getline() function. This function supersedes, and incompatible with, callback (push-style) console handling (via console_input_fn callback, etc.).

char *console_getline(void)

Get next line from console input buffer.

Return next input line from console. Until full line is available, this function will block. This function is similar to ANSI C gets() function (except a line is returned in system-owned buffer, and system takes care of the buffer overflow checks) and is intended to ease porting of existing software. Before this function can be used, console_getline_init() should be called once. This function is incompatible with native Zephyr callback-based console input processing, shell subsystem, or console_getchar().

Returns:

A pointer to a line read, not including EOL character(s). A line resides in a system-owned buffer, so an application should finish any processing of this line immediately after console_getline() call, or the buffer can be reused.