| open-file-input-port(3scm) | Scheme Programmer's Manual | open-file-input-port(3scm) |
NAME
open-file-input-port - open a file for readingLIBRARY
(import (rnrs)) ;R6RS (import (rnrs io ports)) ;R6RS
SYNOPSIS
(open-file-input-port filename) (open-file-input-port filename file-options) (open-file-input-port filename file-options buffer-mode) (open-file-input-port filename file-options buffer-mode maybe-transcoder)
DESCRIPTION
Returns an input port for the named file.The file-options argument defaults to the value of (file-options). Note that the standard file options do nothing for input ports.
The buffer-mode argument must be one of the symbols that name a buffer mode. It defaults to block. Note that line buffering is unlikely to be effective on input ports.
- Textual ports
- If maybe-transcoder is a transcoder, it becomes the transcoder associated with the returned port. The port will then be a textual port.
- Binary ports
- If maybe-transcoder is #f or absent, the port will be a binary port.
- Port positioning
- The port will support the port-position(3scm) and set-port-position!(3scm) operations if it is a binary port. Otherwise support is implementation-dependent, and possibly transcoder-dependent.
RETURN VALUES
Returns a single value; a binary or textual input port.EXAMPLES
;; Return all records in /etc/passwd
(call-with-port
(open-file-input-port "/etc/passwd"
(file-options)
(buffer-mode block)
(native-transcoder))
(lambda (p)
(let lp ()
(let ((line (get-line p)))
(if (eof-object? line)
'()
(cons line (lp)))))))
APPLICATION USAGE
This is used in applications that open binary files, and ones that open textual files while needing control over the transcoder.COMPATIBILITY
This procedure is unique to R6RS. Other RnRS revisions have open-input-file(3scm), which is also in R6RS.ERRORS
This procedure can raise exceptions with the following condition types:- &assertion (R6RS)
- The wrong number of arguments was passed or an argument was outside its domain. In particular, maybe-transcoder must be either a transcoder or #f.
- R7RS
- The assertions described above are errors. Implementations may signal an error, extend the procedure's domain of definition to include such arguments, or fail catastrophically.
SEE ALSO
file-options(3scm), buffer-mode(3scm), open-input-file(3scm), open-file-output-port(3scm)STANDARDS
R6RSHISTORY
First appeared in the reworked I/O system in R6RS.AUTHORS
This page is part of the scheme-manpages project. It includes materials from the RnRS documents. More information can be found at https://weinholt.se/scheme/manpages/.| 2022-05-10 |