Janet 1.16.1-87f8fe1 Documentation
(Other Versions: 1.15.0 1.13.1 1.12.2 1.11.1 1.10.1 1.9.1 1.8.1 1.7.0 1.6.0 1.5.1 1.5.0 1.4.0 1.3.1 )

File Module


file/close file/flush file/open file/popen file/read file/seek file/temp file/write

file/close cfunction
(file/close f)

Close a file and release all related resources. When you are done reading a file, close it to prevent a resource leak and let other processes read the file. If the file is the result of a file/popen call, close waits for and returns the process exit status.
Community Examples

file/flush cfunction
(file/flush f)

Flush any buffered bytes to the file system. In most files, writes are buffered for efficiency reasons. Returns the file handle.
Community Examples

file/open cfunction
(file/open path &opt mode)

Open a file. `path` is an absolute or relative path, and `mode` is a set of flags indicating the mode to open the file in. `mode` is a keyword where each character represents a flag. If the file cannot be opened, returns nil, otherwise returns the new file handle. Mode flags:

* r - allow reading from the file

* w - allow writing to the file

* a - append to the file

Following one of the initial flags, 0 or more of the following flags can be appended:

* b - open the file in binary mode (rather than text mode)

* + - append to the file instead of overwriting it

* n - error if the file cannot be opened instead of returning nil
Community Examples

file/popen cfunction
(file/popen command &opt mode) (DEPRECATED for os/spawn)

Open a file that is backed by a process. The file must be opened in either the :r (read) or the :w (write) mode. In :r mode, the stdout of the process can be read from the file. In :w mode, the stdin of the process can be written to. Returns the new file.
Community Examples

file/read cfunction
(file/read f what &opt buf)

Read a number of bytes from a file `f` into a buffer. A buffer `buf` can be provided as an optional third argument, otherwise a new buffer is created. `what` can either be an integer or a keyword. Returns the buffer with file contents. Values for `what`:

* :all - read the whole file

* :line - read up to and including the next newline character

* n (integer) - read up to n bytes from the file
Community Examples

file/seek cfunction
(file/seek f &opt whence n)

Jump to a relative location in the file `f`. `whence` must be one of:

* :cur - jump relative to the current file location

* :set - jump relative to the beginning of the file

* :end - jump relative to the end of the file

By default, `whence` is :cur. Optionally a value `n` may be passed for the relative number of bytes to seek in the file. `n` may be a real number to handle large files of more than 4GB. Returns the file handle.
Community Examples

file/temp cfunction

Open an anonymous temporary file that is removed on close. Raises an error on failure.
Community Examples

file/write cfunction
(file/write f bytes)

Writes to a file. 'bytes' must be string, buffer, or symbol. Returns the file.
Community Examples