Node:Modifying the Startup Sequence, Previous:Running Image Files, Up:Image Files
You can add your own initialization to the startup sequence through the
deferred word 'cold
. 'cold
is invoked just before the
image-specific command line processing (i.e., loading files and
evaluating (-e
) strings) starts.
A sequence for adding your initialization usually looks like this:
:noname Defers 'cold \ do other initialization stuff (e.g., rehashing wordlists) ... \ your stuff ; IS 'cold
You can make a turnkey image by letting 'cold
execute a word
(your turnkey application) that never returns; instead, it exits Gforth
via bye
or throw
.
You can access the (image-specific) command-line arguments through the
variables argc
and argv
. arg
provides convenient
access to argv
.
If 'cold
exits normally, Gforth processes the command-line
arguments as files to be loaded and strings to be evaluated. Therefore,
'cold
should remove the arguments it has used in this case.
'cold
-- gforth ``tick-cold''
argc
-- addr gforth ``argc''
Variable
- the number of command-line arguments (including the command name).
argv
-- addr gforth ``argv''
Variable
- a pointer to a vector of pointers to the command-line
arguments (including the command-name). Each argument is
represented as a C-style string.
arg
n -- addr count gforth ``arg''
Return the string for the nth command-line argument.