From a004571fba14f19557c5a84746d666b98a19ac0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Thu, 6 Mar 2014 01:25:39 -0800 Subject: [PATCH] Created API/Process (markdown) --- API-Process.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 API-Process.md diff --git a/API-Process.md b/API-Process.md new file mode 100644 index 0000000..dfaf9d8 --- /dev/null +++ b/API-Process.md @@ -0,0 +1,11 @@ +This API provides rudimentary process management. It is used mainly by the `io` module to provide individual standard input and output to individual programs. + +- `process.load(path:string[, env:table[, init:function[, name:string]]]):coroutine` + Loads a Lua script from the specified *absolute* path and sets it up as a process. + It will be loaded with a custom environment, to avoid cluttering the callers/global environment. This environment will have access to anything in the specified environment, or the default (top level) environment if none is given. + If an `init` function is specified, that method is called the first time the resulting coroutine is executed, and run before the actual program is started. This allows fine-tuning of the programs environment. + If a `name` is specified, that is the name the process will specify in `process.running`. It will be `nil` otherwise. +- `process.running([level: number]): string, table, string` + Returns the path to the currently running program (i.e. the last process created via `process.load`). The level can optionally be provided to get parent processes. It defaults to 1, the current program. 2 is the current program's parent (the one that called `process.load` to start the current program) and so on. + The second returned value is the environment of the process, i.e. the table created for it to use as one. + The third returned value is the 'name' of the process, i.e. the fourth parameter to `process.load`. For programs started via the shell this will ususally be the original command. E.g. for `ls -l`, the first returned value will be `ls`, while this value will be `ls -l`. \ No newline at end of file