Writes data from a pre-populated buffer.

This operation will be executed immediately and may or may not block the caller thread for some time. The details of blocking behavior is defined by the implementation and may be subject to other parameters such as non-blocking flags, maximum timeout or even retry attempts.

You can understand this method as write(2) libc function.

Since 1.22


write @pure_virtual {
    params {
        @inout slice: slice<ubyte>;
        @out remaining: slice<ubyte> @optional;
    return: Eina.Error;

C signature

Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);


  • slice (inout) - Provides a pre-populated memory to be used up to slice.len. The returned slice will be adapted as length will be set to the actually used amount of bytes, which can be smaller than the request.
  • remaining (out) - Convenience to output the remaining parts of slice that were not written. If the full slice was written, this will be a slice of zero-length.

Implemented by