10.5. std — Standard functions

Source code: src/text/std.h, src/text/std.c

Test code: tst/text/std/main.c

Test coverage: src/text/std.c


Functions

int std_module_init(void)
ssize_t std_sprintf(char *dst_p, far_string_t fmt_p, ...)

Format and write data to destination buffer. The buffer must be big enough to fit the formatted string. The output is null terminated.

A format specifier has this format:

%[flags][width][length]specifier

where

  • flags: 0 or -
  • width: 0..127
  • length: l for long or nothing
  • specifier: c, s, d, i, u, x or f

Return
Length of the string written to the destination buffer, not inclusing the null termination, or negative error code.
Parameters
  • dst_p: Destination buffer. The formatted string is written to this buffer.
  • fmt_p: Format string.
  • ...: Variable arguments list.

ssize_t std_snprintf(char *dst_p, size_t size, far_string_t fmt_p, ...)

Format and write data to given buffer. The output is null terminated.

Return
Length of the string written to the destination buffer, not inclusing the null termination, or negative error code.
Parameters
  • dst_p: Destination buffer. The formatted string is written to this buffer.
  • size: Size of the destination buffer.
  • fmt_p: Format string.
  • ...: Variable arguments list.

ssize_t std_vsprintf(char *dst_p, far_string_t fmt_p, va_list *ap_p)

Format and write data to given buffer. The output is null terminated.

Return
Length of the string written to the destination buffer, not inclusing the null termination, or negative error code.
Parameters
  • dst_p: Destination buffer. The formatted string is written to this buffer.
  • fmt_p: Format string.
  • ap_p: Variable arguments list.

ssize_t std_vsnprintf(char *dst_p, size_t size, far_string_t fmt_p, va_list *ap_p)

Format and write data to given buffer. The output is null terminated.

Return
Length of the string written to the destination buffer, not inclusing the null termination, or negative error code.
Parameters
  • dst_p: Destination buffer. The formatted string is written to this buffer.
  • size: Size of the destination buffer.
  • fmt_p: Format string.
  • ap_p: Variable arguments list.

ssize_t std_printf(far_string_t fmt_p, ...)

Format and print data to standard output. The output is not null terminated.

See std_sprintf() for the the format string specification.

Return
Number of characters written to standard output, or negative error code.
Parameters
  • fmt_p: Format string.
  • ...: Variable arguemnts list.

ssize_t std_vprintf(far_string_t fmt_p, va_list *ap_p)

Format and print data to standard output. The output is not null terminated.

See std_sprintf() for the the format string specification.

Return
Number of characters written to standard output, or negative error code.
Parameters
  • fmt_p: Format string.
  • ap_p: Variable arguemnts list.

ssize_t std_fprintf(void *chan_p, far_string_t fmt_p, ...)

Format and print data to channel. The output is not null terminated.

See std_sprintf() for the the format string specification.

Return
Number of characters written to given channel, or negative error code.
Parameters
  • chan_p: Output channel.
  • fmt_p: Format string.
  • ...: Variable arguemnts list.

ssize_t std_vfprintf(void *chan_p, far_string_t fmt_p, va_list *ap_p)

Format and print data to channel. The output is not null terminated.

See std_sprintf() for the the format string specification.

Return
Number of characters written to given channel, or negative error code.
Parameters
  • chan_p: Output channel.
  • fmt_p: Format string.
  • ...: Variable arguemnts list.

const char *std_strtol(const char *str_p, long *value_p)

Convert string to integer.

Return
Pointer to the next byte or NULL on failure.
Parameters
  • str_p: Integer string.
  • value_p: Integer value.

const char *std_strtod(const char *str_p, double *value_p)

Convert string to double.

Return
Pointer to the next byte or NULL on failure.
Parameters
  • str_p: Double string.
  • value_p: Double value.

int std_strcpy(char *dst_p, far_string_t src_p)

Copy string from far memory to memory.

Return
String length or negative error code.
Parameters
  • dst_p: Normal memory string.
  • src_p: Far memory string.

int std_strcmp(const char *str_p, far_string_t fstr_p)

Compare a string with a far string.

Return
zero(0) if match, otherwise the difference of the mismatched characters
Parameters
  • str_p: Normal memory string.
  • fstr_p: Far memory string.

int std_strcmp_f(far_string_t fstr0_p, far_string_t fstr1_p)

Compare two far strings.

Return
zero(0) if match, otherwise the difference of the mismatched characters.
Parameters
  • fstr0_p: Far memory string.
  • fstr1_p: Far memory string.

int std_strncmp(far_string_t fstr_p, const char *str_p, size_t size)

Compare at most size bytes of one far string and one string.

Return
zero(0) if match, otherwise the difference of the mismatched characters.
Parameters
  • fstr_p: Far memory string.
  • str_p: String.
  • size: Compare at most size number of bytes.

int std_strncmp_f(far_string_t fstr0_p, far_string_t fstr1_p, size_t size)

Compare at most size bytes of two far strings.

Return
zero(0) if match, otherwise the difference of the mismatched characters.
Parameters
  • fstr0_p: Far memory string.
  • fstr1_p: Far memory string.
  • size: Compare at most size number of bytes.

int std_strlen(far_string_t fstr_p)

Get the length in bytes of given far string, not including null termination.

Return
String length in number of bytes (not including the null termination).
Parameters
  • fstr_p: Far memory string.

char *std_strip(char *str_p, const char *strip_p)

Strip leading and trailing characters from a string. The characters to strip are given by strip_p.

Return
Pointer to the stripped string.
Parameters
  • str_p: String to strip characters from.
  • strip_p: Characters to strip or NULL for whitespace characters. Must be null-terminated.

ssize_t std_hexdump(void *chan_p, const void *buf_p, size_t size)

Write a hex dump of given data to given channel.

Return
Number of characters written to given channel, or negative error code.
Parameters
  • chan_p: Channel to write the hexdump to.
  • buf_p: Buffer to dump.
  • size: Size of buffer.