Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
api:process:zh [2023/10/19 11:10]
hfsr [Process(进程) API]
api:process:zh [2023/11/29 14:33] (current)
hfsr [Process(进程) API]
Line 1: Line 1:
 Process(进程) API Process(进程) API
 ========== ==========
-此API提供了基本的进程管理功能。此功能主要被`io`模块用于向不同程序分别提供标准输入输出。+此API提供了基本的进程管理功能。 ​  
 +API主要被`io`模块用于向不同程序分别提供标准输入输出。 ​ 
  
 将进程看作带有额外元数据的协程会有助于理解。进程会继承其父进程的元数据,同时也可以定义自己的元数据。这些元数据支持stdio和控制台屏幕。进程创建的所有协程都会像其子线程一样被分组。 将进程看作带有额外元数据的协程会有助于理解。进程会继承其父进程的元数据,同时也可以定义自己的元数据。这些元数据支持stdio和控制台屏幕。进程创建的所有协程都会像其子线程一样被分组。
  
 - `process.load(path:​string[,​ env:table[, init:​function[,​ name:​string]]]):​coroutine`  ​ - `process.load(path:​string[,​ env:table[, init:​function[,​ name:​string]]]):​coroutine`  ​
-  从指定的*绝对*路径加载一个Lua脚本,并将其作为进程运行。 +  从指定的**绝对路径**`path`加载一个Lua脚本,并将其作为进程运行。 ​  
-  此进程将会被加载到一个自定义环境,以避免污染调用者或全局环境。此环境将会获得给定环境的所有权限,若不指定则默认会给予最高权限环境。 +  此进程将会被加载到一个自定义环境,以避免污染调用者或全局环境。此环境将会获得给定环境的所有权限,若不指定则默认会给予最高权限环境。 ​  
-   +  ​(自OpenOS 1.6起`path`也可为函数,此时`env`必须为`nil`。 ​    
-  ​(OpenOS 1.6起`path` 也可为函数,此时 `env` 必须为 `nil`。 +  ​给定`init`函数,则此方法会在`prosecc.load`产生的协程第一次执行时调用,并在程序实际开始运行前执行。这可以用于微调程序运行环境。 ​  
-  ​ +  ​给定`name`参数,则`process.running`的结果中会此进程指定此名称。此参数也可以为`nil`。 ​  
-  如果给定了 `init` 函数,则prosecc.load产生的协程第一次执行时调用此方法,并在程序实际开始运行前执行。这可以用于微调程序运行环境。 +\\ 
-  ​如果给定了 `name` ,则 `process.running` 的结果中会此进程指定此名称。此参数也可以为 `nil` 。 +- `process.info([level:​ number]): table` ​  
-- `process.info([level:​ number]): table` +  返回一个表,其中包含指定进程的命令、路径与一些其他数据。`level`参数为可选参数,若给定则可获取父进程。默认情况下此值为1,即当前进程。若为2代表当前进程的父进程(调用`process.load`启动了此进程的进程)。以此类推。 ​  
-  返回一个表,其中包含指定进程的命令、路径与一些其他数据。 `level` 参数为可选参数,若给定则可获取父进程。默认情况下此值为1,即当前进程。若为2代表当前进程的父进程(调用了 `process.load` 启动了此进程的进程)。以此类推。 +\\ 
-- `process.running([level:​ number]): string, table, string` +- `process.running([level:​ number]): string, table, string`自1.5起弃用,改用`process.info`代替)    
-  (自1.5起弃用,改用 process.info 代替返回指向当前运行程序(即通过`process.load`创建的最后一个进程)的路径。`level`参数为可选参数,若给定则可获取父进程。默认情况下此值为1,即当前进程。若为2代表当前进程的父进程(调用了 `process.load` 启动了此进程的进程)。以此类推。+  ​返回指向当前运行程序(即通过`process.load`创建的最后一个进程)的路径。`level`参数为可选参数,若给定则可获取父进程。默认情况下此值为1,即当前进程。若为2代表当前进程的父进程(调用了 `process.load` 启动了此进程的进程)。以此类推。
   第二个返回值为进程的环境,即为了其使用而创建的表。   第二个返回值为进程的环境,即为了其使用而创建的表。
-  第三个返回值为进程的`name`,即`process.load`的第四个参数。对通过shell启动的程序而言此值为启动时的原始命令。例如,对于 `ls -l` 命令,第一个返回值为 `ls`,而第三个返回值为 `ls -l`。+  第三个返回值为进程的`name`,即`process.load`的第四个参数。对通过shell启动的程序而言此值为启动时的原始命令。例如,对`ls -l`命令,第一个返回值为`ls`,而第三个返回值为`ls -l`。
  
 目录 目录
 ----------- -----------
 {{page>​api:​contents:​zh&​noheader&​noeditbutton&​nouser&​nofooter}} {{page>​api:​contents:​zh&​noheader&​noeditbutton&​nouser&​nofooter}}