| width='120' | '''Signature'''
|<pre>proc:system(
$cmd command as xs:string, $args arguments as xs:string* := (), $options as map(*) ? := ()map { }
) as xs:string</pre>
|- valign="top"
| '''Summary'''
|Executes the specified command in a separate process and returns the result as string. {{Code|$cmdcommand}} is the name of the command, arguments to with the command may be specified via {{Code|$argsarguments}}in a separate process and returns the result as a string. The {{Code|$options}} parameter contains process options:
* {{Code|encoding}}: convert result to the specified encoding. If no encoding is supplied, the system’s default encoding is used.
* {{Code|timeout}}: abort process execution after the specified number of seconds.
* {{Code|proc:system('date')}} returns the current date on a Linux system.
* Analyses the given input and counts the number of lines, words and characters (provided that {{Code|wc}} is available on the system):
<syntaxhighlight pre lang="'xquery"'>
proc:system(
'wc', (),
map { 'input': 'A B' || out:nl() || 'C' }
)
</syntaxhighlightpre>
* The following example returns “Command not found” (unless {{Code|xyz}} is a valid command on the system):
<syntaxhighlight pre lang="'xquery"'>
try {
proc:system('xyz')
'Command not found: ' || $err:description
}
</syntaxhighlightpre>
|}
| width='120' | '''Signature'''
|<pre>proc:execute(
$cmd command as xs:string, $args arguments as xs:string* := (), $options as map(*) ? := ()map { }
) as element(result)</pre>
|- valign="top"
| '''Summary'''
|Executes the specified command in a separate process and returns the result as element:* {{Code|$cmdcommand}} is the name of the command, and arguments to with the command may be specified via {{Code|$argsarguments}}.in a separate process and returns the result as an element:
* The same {{Code|$options}} are allowed as for {{Function||proc:system}}.
* Instead of the {{Code|proc:error}} error, the error message and process code will be assigned to the returned elements.
* Instead of the {{Code|proc:code....}} error, the error message will be assigned to the returned element (no process code will be returned).
The result has the following structure:
<syntaxhighlight pre lang="xml">
<result>
<output>...output...</output>
<code>...process code...</code>
</result>
</syntaxhighlightpre>
|- valign="top"
|'''Errors'''
| width='120' | '''Signature'''
|<pre>proc:fork(
$cmd command as xs:string, $args arguments as xs:string* := (), $options as map(*) ? := ()map { }
) as element(result)</pre>
|- valign="top"
| '''Summary'''
|Executes the specified command and ignores the result. a {{Code|$cmdcommand}} is the name of with the command, and arguments to the command may be specified via {{Code|$argsarguments}}in a separate process and ignores the result. The same {{Code|$options}} are allowed as for {{Function||proc:system}} (but with the encoding will be being ignored).
|- valign="top"
|'''Errors'''