| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.98.0/docs/handbook/_sources/libraries/process.rst.txt |
.. _library_process:
processThis library provides a portable abstraction over process handling predicates found in some backend Prolog systems. Currently supports ECLiPSe, GNU Prolog, SICStus Prolog, SWI-Prolog, Trealla Prolog, and XVM.
Open the `../../docs/library_index.html#process <../../docs/library_index.html#process>`__ link in a web browser.
To load all entities in this library, load the loader.lgt file:
::
| ?- logtalk_load(process(loader)).
To test this library predicates, load the tester.lgt file:
::
| ?- logtalk_load(process(tester)).
The process object provides the following predicates for portable
process handling:
create(Executable, Arguments, Options) - Creates a new processwait(Process, Status) - Waits for a process to terminatekill(Process, Signal) - Terminates a process with a specific
signalkill(Process) - Terminates a process using the default signal
(SIGKILL)
The create/3 predicate supports the following options:
process(Pid) - Unifies Pid with the process identifier (an opaque
ground term)stdin(Stream) - Binds Stream to the process standard inputstdout(Stream) - Binds Stream to the process standard outputstderr(Stream) - Binds Stream to the process standard error
Note: Process identifiers (PIDs) should be treated as opaque ground
terms. Their internal representation varies between backend Prolog
systems.
Example:
::
| ?- process::create('/bin/echo', ['hello.'], [stdout(Out), process(PID)]),
read_term(Out, Term, []),
close(Out).
Out = ..., PID = ..., Term = hello.