Method

GioDataInputStreamread_upto

since: 2.26

Declaration

char*
g_data_input_stream_read_upto (
  GDataInputStream* stream,
  const gchar* stop_chars,
  gssize stop_chars_len,
  gsize* length,
  GCancellable* cancellable,
  GError** error
)

Description

Reads a string from the data input stream, up to the first occurrence of any of the stop characters.

In contrast to g_data_input_stream_read_until(), this function does not consume the stop character. You have to use g_data_input_stream_read_byte() to get it before calling g_data_input_stream_read_upto() again.

Note that stop_chars may contain ‘\0’ if stop_chars_len is specified.

The returned string will always be nul-terminated on success.

Available since: 2.26

Parameters

stop_chars

Type: const gchar*

Characters to terminate the read.

The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
stop_chars_len

Type: gssize

Length of stop_chars. May be -1 if stop_chars is nul-terminated.

length

Type: gsize*

A #gsize to get the length of the data read in.

The argument will be set by the function.
The argument can be NULL.
cancellable

Type: GCancellable

Optional GCancellable object, NULL to ignore.

The argument can be NULL.
The data is owned by the caller of the function.
error

Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will left initialized to NULL by the method if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: char*

A string with the data that was read before encountering any of the stop characters. Set length to a #gsize to get the length of the string. This function will return NULL on an error.

The caller of the method takes ownership of the data, and is responsible for freeing it.
The value is a NUL terminated UTF-8 string.