syswrite - fixed-length unbuffered output to a filehandle

- NAME
- SYNOPSIS
- DESCRIPTION

# NAME

syswrite - fixed-length unbuffered output to a filehandle

# SYNOPSIS

syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET

syswrite FILEHANDLE,SCALAR,LENGTH

syswrite FILEHANDLE,SCALAR

# DESCRIPTION

Attempts to write LENGTH bytes of data from variable SCALAR to the specified FILEHANDLE, using the system call write(2). If LENGTH is not specified, writes whole SCALAR. It bypasses buffered IO, so mixing this with reads (other than `sysread())`, `print`, `write`, `seek`, `tell`, or `eof` may cause confusion because the perlio and stdio layers usually buffers data. Returns the number of bytes actually written, or `undef` if there was an error (in this case the errno variable `$!` is also set). If the LENGTH is greater than the available data in the SCALAR after the OFFSET, only as much data as is available will be written.

An OFFSET may be specified to write the data from some part of the string other than the beginning. A negative OFFSET specifies writing that many characters counting backwards from the end of the string. In the case the SCALAR is empty you can use OFFSET but only zero offset.

Note that if the filehandle has been marked as `:utf8`, Unicode characters are written instead of bytes (the LENGTH, OFFSET, and the return value of `syswrite()` are in UTF-8 encoded Unicode characters). The `:encoding(...)` layer implicitly introduces the `:utf8` layer. See binmode in the perlfunc manpage, open in the perlfunc manpage, and the `open` pragma, the open manpage.

syswrite - fixed-length unbuffered output to a filehandle