Write data to a file or a stream.
Writes data and returns the number of bytes that were
actually written.
If more than one argument is given, sprintf() will be
used to format them.
If data is an array, it will be concatenated, and then written.
0 is returned in nonblocking mode if it was not possible to write
anything without blocking.
-1 is returned if something went wrong and no bytes were written.