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


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


stop_chars 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 gssize

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

length 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 GCancellable

Optional GCancellable object, NULL to ignore.

 The argument can be NULL.
 The data is owned by the caller of the function.
error GError **
  The return location for a GError*, or NULL.

Return value

Returns: 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.