fd_close()
Close an open file descriptor.
Description
The fd_close()
function is used to close an open file descriptor. For sockets, this function will flush the data before closing the socket.
Syntax
;;; Note: This is similar to `close` in POSIX.
;;; Close a file descriptor.
(@interface func (export "fd_close")
(param $fd $fd)
(result $error (expected (error $errno)))
)
Parameters
ctx
: A mutable reference to the function environment.fd
: The file descriptor mapping to an open file to close.
Return Value
The function returns a Result
containing an Errno
value indicating the success or failure of the operation. An Errno::Success
value indicates a successful closure.
Errors
The function can return the following errors:
Errno::Isdir
: If the providedfd
corresponds to a directory.Errno::Badf
: If the providedfd
is invalid or not open.
Logging
This function has been instrumented with debug-level logging. It will log the following information:
pid
: The process ID of the current execution context.%fd
: The file descriptor being closed.err
: Any encountered error during the closing process.
Note
The fd_close()
function is used to close an open file descriptor. It releases any resources associated with the file descriptor. For sockets, it ensures that any pending data is flushed before closing the socket.