KEYRING-GETSTRING(2) KEYRING-GETSTRING(2) NAME getstring, putstring, getbytearray, putbytearray, puterror - delimited I/O SYNOPSIS include "keyring.m" keyring:= load Keyring Keyring->PATH; getstring: fn(fd: ref Sys->FD): (string, string); putstring: fn(fd: ref Sys->FD, s: string): int; getbytearray:fn(fd: ref Sys->FD): (array of byte, string); putbytearray: fn(fd: ref Sys->FD, a: array of byte, n: int): int; puterror: fn(fd: ref Sys->FD, s: string): int; DESCRIPTION These functions provide I/O for strings, byte arrays and error strings over network connections that provide a record structure for communication (as provided for arbitrary networks by ssl(3)). Putstring writes string s to fd. It returns the number of bytes written, or -1 if an error occurred. Messages written by putstring are truncated to 4096 bytes. Getstring reads a string as written by putstring from fd and returns a tuple (result,error). If successful, the error string is nil. Putbytearray writes the array of bytes a to fd. It returns the number of bytes written, or -1 if an error occurred. Messages written by putbytearray are truncated to 4096 bytes. Getbytearray reads an array of bytes as written by putbytearray from fd and returns a tuple of the form (result,error). If successful, the error string is nil. Puterror writes an error string s to fd. It can be used in place of putstring or putbytearray to cause a corresponding getstring or getbytearray to fail (in the receiving pro- cess), forcing them to return the error string s. It may not be longer than Sys->ERRLEN bytes. SOURCE /interp/keyring.c DIAGNOSTICS The output functions return an int which is -1 if there was an I/O error, and a non-negative value otherwise. The input functions return a tuple that includes a string indicating Page 1 Plan 9 (printed 12/21/24) KEYRING-GETSTRING(2) KEYRING-GETSTRING(2) the cause of the error, as the second element of the tuple. Page 2 Plan 9 (printed 12/21/24)