pipeio
The file builtins/pipeio.e (not an autoinclude) contains routines for low-level handling of pipes.
These are (currently) used exclusively with system_exec().
See demo\capture_console.exw for an example of use.
Note this is currently Windows-only. At one point that demo worked on Linux with a few minor glitches, but alas now it just hangs.
None of these routines are supported by pwa/p2js.
Note the following windows-only constants and routines are not properly documented, and will remain so until they
also work on Linux (see/test popen(), fread(), pclose(), in builtins\pfileio.e):
PIPE_TYPE_BYTE, PIPE_TYPE_MESSAGE, PIPE_READMODE_BYTE, PIPE_READMODE_MESSAGE, PIPE_WAIT, PIPE_NOWAIT, PIPE_ACCEPT_REMOTE_CLIENTS, PIPE_REJECT_REMOTE_CLIENTS, PIPE_UNLIMITED_INSTANCES, PIPE_ACCESS_DUPLEX, PIPE_ACCESS_INBOUND, PIPE_ACCESS_OUTBOUND, NMPWAIT_NOWAIT, NMPWAIT_WAIT_FOREVER, NMPWAIT_USE_DEFAULT_WAIT
create_named_pipe(), connect_named_pipe(), close_handle(), disconnect_pipe(), flush_pipe(), read_pipe(), write_pipe(), call_named_pipe() [four or five of those may deserve "named_" in their names].
These are (currently) used exclusively with system_exec().
See demo\capture_console.exw for an example of use.
Note this is currently Windows-only. At one point that demo worked on Linux with a few minor glitches, but alas now it just hangs.
None of these routines are supported by pwa/p2js.
constants
| = 1 -- (for stdin) |
PIPOUT | = 2 -- (for stdout) |
PIPERR | = 3 -- (for stderr) |
READ_PIPE | = 1 |
WRITE_PIPE | = 2 |
INHERIT_READ | = 1 -- (for create_pipe) |
| = 2 -- (for create_pipe) |
routines
|
|
bool bRes = | |
atom_string res = |
|
object res = |
|
PIPE_TYPE_BYTE, PIPE_TYPE_MESSAGE, PIPE_READMODE_BYTE, PIPE_READMODE_MESSAGE, PIPE_WAIT, PIPE_NOWAIT, PIPE_ACCEPT_REMOTE_CLIENTS, PIPE_REJECT_REMOTE_CLIENTS, PIPE_UNLIMITED_INSTANCES, PIPE_ACCESS_DUPLEX, PIPE_ACCESS_INBOUND, PIPE_ACCESS_OUTBOUND, NMPWAIT_NOWAIT, NMPWAIT_WAIT_FOREVER, NMPWAIT_USE_DEFAULT_WAIT
create_named_pipe(), connect_named_pipe(), close_handle(), disconnect_pipe(), flush_pipe(), read_pipe(), write_pipe(), call_named_pipe() [four or five of those may deserve "named_" in their names].