.ds lang COBOL
.ds gcobol GCC\ \*[lang]\ Front-end
.Dd \& March 2026
.Dt CBL_WRITE_FILE 3\& "\&GNU Compatibility Library"
.Os Linux
.Sh NAME
.Nm CBL_WRITE_FILE
.Nd write bytes from a file
.Sh LIBRARY
libgcobol_compat_gnu
.
.Sh SYNOPSIS
.\" Ic COPY CBL_WRITE_FILE
.Ic call Dq "CBL_WRITE_FILE"
using
.Ar file-handle
.Ar file-offset
.Ar byte-count
.Ar flags
.Ar buffer
returning
.Ar status
.
.Sh DESCRIPTION
Parameters:
.Pp
.Bl -tag -width file-handle
.It Ar file-handle
.Sy "PIC X(4) COMP-5" ,
was opened with
.Ic CBL_CREATE_FILE
or
.Ic CBL_OPEN_FILE
.
.It Ar file-offset 
.\" should be either X(8) COMP-X or 9(8) COMP-5
.Sy "PIC X(8) COMP-5"
[sic]
is the file offset where the write begins.
.It Ar byte-count
.Sy PIC X(4) COMP-X
is the number of bytes to write.
.It Ar flags
ignored
.It Ar buffer
.Sy PIC X Ns Pq Ar n
is an alphanumeric data item of
.Ar n
bytes.
.El
.
.Sh RETURN STATUS
.Nm
returns
.Sy "PIC X(2) COMP-5" .
The return status is 0 on success, else nonzero.  
.
.Sh SEE ALSO
.Xr CBL_CHECK_FILE_EXIST
.Xr CBL_CLOSE_FILE
.Xr CBL_CREATE_FILE
.Xr CBL_DELETE_FILE
.Xr CBL_OPEN_FILE
.Xr CBL_READ_FILE
.\" CBL_WRITE_FILE
.
.Sh COPYRIGHT
.Bd -unfilled -indent
Copyright (c) 2021-2026 Symas Corporation

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of the Symas Corporation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.Ed
