Input¶
Comefrom0x10 programs can receive input from all the normal places, standard input, files and the command line.
Command-line arguments¶
The global argv
stores command-line arguments to Cf0x10 programs. This example echoes its command line arguments:
# In the file echo.cf0x10
argv
Invoked thus:
cf0x10 echo.cf0x10 hello world
Prints hello world
.
Standard input¶
This example prompts for input from the user and exits when the user enters a blank line:
prompt
comefrom echo
'Type something: '...
stdin = ''
echo
comefrom stdin if stdin
'You typed "' stdin '"'
# jumps back to prompt
Input is blocking and line-buffered. Changing the stdin
global causes the program to wait for input, so it actually pauses at the line stdin = ''
, until stdin is set.
Each line automatically gets its trailing newline dropped (automatically chomped, in Perl-speak).
End-of-file (EOF) sets stdin to undefined
, so a Cf0x10 program can trivially detect the end of piped input.
Files¶
Setting the read_path
global causes a read from the given path, whose contents will be stored in the file
global. This cat program reads a single file and prints its contents to standard out:
read_path = argv
file
Setting the write_path
global causes the contents of the file
global to be written to write_path
. This program writes “Hello, world” to a path given on the command line:
file = 'Hello, world'
write_path = argv
Because Cf0x10 has no binary data type, files are always encoded and decoded as UTF-8.