KEYRING-GETSTRING(2)KEYRING-GETSTRING(2)NAME
keyring: getstring, putstring, getbytearray, putbytearray, puterror -
exchange data on delimited streams
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 communica‐
tion (as provided for arbitrary networks by ssl(3)).
Putstring writes string s to fd. It returns the number of bytes writ‐
ten, 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 put‐
bytearray 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 get‐
bytearray to fail (in the receiving process), forcing them to return
the error string s. It may not be longer than Sys->ERRMAX bytes.
SOURCE
/libinterp/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 the cause of the error, as
the second element of the tuple.
KEYRING-GETSTRING(2)