Module Scanning
: sigendtypein_channel
The notion of input channel for the Scanf module: those channels provide all the machinery necessary to
read from any source of characters, including a in_channel value. A Scanf.Scanning.in_channel value is
also called a formatted input channel or equivalently a scanning buffer. The type Scanf.Scanning.scanbuf
below is an alias for Scanning.in_channel . Note that a Scanning.in_channel is not concurrency-safe:
concurrent use may produce arbitrary values or exceptions.
Since 3.12
typescanbuf = in_channel
The type of scanning buffers. A scanning buffer is the source from which a formatted input function gets
characters. The scanning buffer holds the current state of the scan, plus a function to get the next char
from the input, and a token buffer to store the string matched so far.
Note: a scanning action may often require to examine one character in advance; when this 'lookahead'
character does not belong to the token read, it is stored back in the scanning buffer and becomes the
next character yet to be read.
valstdin : in_channel
The standard input notion for the Scanf module. Scanning.stdin is the Scanf.Scanning.in_channel
formatted input channel attached to stdin .
Note: in the interactive system, when input is read from stdin , the newline character that triggers
evaluation is part of the input; thus, the scanning specifications must properly skip this additional
newline character (for instance, simply add a '\n' as the last character of the format string).
Since 3.12
typefile_name = string
A convenient alias to designate a file name.
Since 4.00
valopen_in : file_name->in_channelScanning.open_infname returns a Scanf.Scanning.in_channel formatted input channel for bufferized reading
in text mode from file fname .
Note: open_in returns a formatted input channel that efficiently reads characters in large chunks; in
contrast, from_channel below returns formatted input channels that must read one character at a time,
leading to a much slower scanning rate.
Since 3.12
valopen_in_bin : file_name->in_channelScanning.open_in_binfname returns a Scanf.Scanning.in_channel formatted input channel for bufferized
reading in binary mode from file fname .
Since 3.12
valclose_in : in_channel->unit
Closes the in_channel associated with the given Scanf.Scanning.in_channel formatted input channel.
Since 3.12
valfrom_file : file_name->in_channel
An alias for Scanf.Scanning.open_in above.
valfrom_file_bin : string->in_channel
An alias for Scanf.Scanning.open_in_bin above.
valfrom_string : string->in_channelScanning.from_strings returns a Scanf.Scanning.in_channel formatted input channel which reads from the
given string. Reading starts from the first character in the string. The end-of-input condition is set
when the end of the string is reached.
valfrom_function : (unit->char)->in_channelScanning.from_functionf returns a Scanf.Scanning.in_channel formatted input channel with the given
function as its reading method.
When scanning needs one more character, the given function is called.
When the function has no more character to provide, it must signal an end-of-input condition by raising
the exception End_of_file .
valfrom_channel : in_channel->in_channelScanning.from_channelic returns a Scanf.Scanning.in_channel formatted input channel which reads from the
regular in_channel input channel ic argument. Reading starts at current reading position of ic .
valend_of_input : in_channel->boolScanning.end_of_inputic tests the end-of-input condition of the given Scanf.Scanning.in_channel
formatted input channel.
valbeginning_of_input : in_channel->boolScanning.beginning_of_inputic tests the beginning of input condition of the given
Scanf.Scanning.in_channel formatted input channel.
valname_of_input : in_channel->stringScanning.name_of_inputic returns the name of the character source for the given
Scanf.Scanning.in_channel formatted input channel.
Since 3.09
OCamldoc 2025-06-12 Scanf.Scanning(3o)