| put-u8(3scm) | Scheme Programmer's Manual | put-u8(3scm) |
NAME
put-u8, write-u8 - write a byte to a binary output port
LIBRARY
(import (rnrs)) ;R6RS (import (rnrs io ports)) ;R6RS (import (scheme base)) ;R7RS
SYNOPSIS
(put-u8 binary-output-port byte) ;R6RS (write-u8 byte) ;R7RS (write-u8 byte binary-output-port) ;R7RS
DESCRIPTION
Writes the byte to the given binary-output-port.
IMPLEMENTATION NOTES
- Chibi Scheme
- The current-output-port(3scm) at program start is both textual and binary. It should normally not be possible to use write-u8 on the current output port before rebinding it to a binary output port (which is not possible in R6RS).
RETURN VALUES
EXAMPLES
;; R7RS code to create a file with the single line "A" (call-with-port (open-output-file "test.txt") (lambda (p) (write-u8 65 p) (write-u8 10 p)))
APPLICATION USAGE
Commonly used in applications that create binary files or other binary data. There is often a mix of single bytes intermixed with larger writes with put-bytevector(3scm).
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, byte must be an exact integer between 0 and 255.
- &i/o-write (R6RS)
- There was an I/O error during the write operation.
- &i/o-port (R6RS)
- If this is included as part of an I/O condition then the port related to the I/O error can be retrieved with i/o-error-port(3scm).
- 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
put-char(3scm), put-bytevector(3scm)
STANDARDS
R6RS, R7RS
HISTORY
The put-u8 procedure is new to the reworked I/O system introduced with R6RS. The write-u8 procedure is new in R7RS and is similar to write-char(3scm) but works with binary output ports, which did not exist in R5RS.
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-04-07 |