Flatten builtin pages, add third-party and platform scopes, and import financial and data warehouse references. Keep the existing generated index without rebuilding after signature normalization.
1017 lines
24 KiB
Markdown
1017 lines
24 KiB
Markdown
# Builtin - 进程
|
||
|
||
## `dbglocalcancel(id)`
|
||
|
||
声明:function
|
||
|
||
注销任务。该功能可以用来终止运行的WEB任务。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------- | ----------------------------------------------------------------- |
|
||
| `id` | integer | 为dbglocalrunning中返回信息中的id字段以十六进制模式转换为64位整数 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:尝试注销指定的本地任务
|
||
|
||
```tsl
|
||
echo dbglocalcancel(0), "\n";
|
||
```
|
||
|
||
## `dbglocalrunning()`
|
||
|
||
声明:function
|
||
|
||
获得当前所有的任务列表以及堆栈信息,主要用于web等检查在运行中的任务。
|
||
|
||
返回:array,tablearray
|
||
|
||
### 示例
|
||
|
||
范例01:读取本地任务数量
|
||
|
||
```tsl
|
||
echo length(dbglocalrunning()), "\n";
|
||
```
|
||
|
||
## `sleep(milliseconds)`
|
||
|
||
声明:function
|
||
|
||
暂停执行。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ------- | --------------------------------------------------- |
|
||
| `milliseconds` | integer | 整数,需要暂停的毫秒数。例如暂停一秒为Sleep(1000)。 |
|
||
|
||
返回:nil
|
||
|
||
### 示例
|
||
|
||
范例01:短暂暂停当前脚本
|
||
|
||
```tsl
|
||
echo "before\n";
|
||
sleep(10);
|
||
echo "after\n";
|
||
```
|
||
|
||
## `sysCloseHandle(handle)`
|
||
|
||
声明:function
|
||
|
||
关闭一个句柄,如互斥锁,文件句柄等。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ------- | -------------- |
|
||
| `handle` | integer | 整数,句柄编号 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:关闭当前进程的临时句柄
|
||
|
||
```tsl
|
||
handle := sysHandleOfPid(sysProcessId(), 4096, 0);
|
||
echo sysCloseHandle(handle), "\n";
|
||
```
|
||
|
||
## `sysCmdLine()`
|
||
|
||
声明:function
|
||
|
||
获得解析器的真实命令行串。
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前解析器命令行
|
||
|
||
```tsl
|
||
echo sysCmdLine(), "\n";
|
||
```
|
||
|
||
## `sysCreateMutex(mutex_name)`
|
||
|
||
声明:function
|
||
|
||
创建一个互斥锁。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ------------------ |
|
||
| `mutex_name` | string | 字符串,互斥锁名称 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:创建并释放互斥锁
|
||
|
||
```tsl
|
||
mutex := sysCreateMutex("tsl-doc-create-mutex");
|
||
echo mutex, "\n";
|
||
sysReleaseMutex(mutex);
|
||
```
|
||
|
||
## `sysErrorMessage(code)`
|
||
|
||
声明:function
|
||
|
||
返回指定代码表示的系统错误信息。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | -------------- |
|
||
| `code` | integer | 整数,提示代码 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:读取系统错误码对应的消息
|
||
|
||
```tsl
|
||
echo sysErrorMessage(2), "\n";
|
||
```
|
||
|
||
## `sysExec(prog, cmd_line, startup_dir, wait_exit, var return_code[, wait_ms])`
|
||
|
||
声明:function
|
||
|
||
创建子进程。wait_exit 为真时等待进程退出并写回退出码;wait_ms 可省略。返回的进程句柄使用后应关闭。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | -------------- | -------------------------------------- |
|
||
| `prog` | string | 可执行文件路径。 |
|
||
| `cmd_line` | string\|array | 命令行字符串或参数数组。 |
|
||
| `startup_dir` | string\|nil | 子进程工作目录。 |
|
||
| `wait_exit` | boolean\|array | 是否等待子进程退出,也可传入管道选项。 |
|
||
| `return_code` | integer\|array | 写回子进程退出码或管道输出。 |
|
||
| `wait_ms` | integer | 可选等待时间,单位为毫秒。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
pos := 0;
|
||
source := "value := 1;";
|
||
writeFile(rwRaw(), "", "child.tsl", pos, length(source), source);
|
||
exe_path := sysExecName();
|
||
handle := sysExec(exe_path, array(exe_path, "child.tsl"), nil, true, exit_code);
|
||
echo handle > 0 and exit_code = 0, "\n";
|
||
// 输出:1
|
||
sysCloseHandle(handle);
|
||
fileDelete("", "child.tsl");
|
||
```
|
||
|
||
## `sysexecdeletepipe(process_handle)`
|
||
|
||
声明:function
|
||
|
||
删除指定进程的管道。参数缺省时,删除默认管道。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------------- | ---- | ---------------------- |
|
||
| `process_handle` | | 可选。数值,进程句柄。 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:删除当前脚本创建的默认管道
|
||
|
||
```tsl
|
||
sysExecNewPipe(0);
|
||
echo sysExecDeletePipe(), "\n";
|
||
```
|
||
|
||
## `sysexecGetenvs()`
|
||
|
||
声明:function
|
||
|
||
获取子进程的环境变量,应用于Sysexec创建的子进程。
|
||
|
||
返回:array of string
|
||
|
||
### 示例
|
||
|
||
范例01:读取为子进程准备的环境变量
|
||
|
||
```tsl
|
||
sysExecSetEnvs(array("TSL_DOC_CHILD=value"), 2);
|
||
echo toStn(sysexecGetenvs()), "\n";
|
||
```
|
||
|
||
## `sysexecnewpipe(flag)`
|
||
|
||
声明:function
|
||
|
||
创建Sysexec进程的管道。参数缺省时,默认创建读写管道。创建之后会与第一次被用的进程进行绑定,当有多个Sysexec进程时,可以创建多个管道分别进行读写操作。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ------------------------------------------------------------------------------------------------ |
|
||
| `flag` | integer | 可选。整数,控制创建管道的读写属性。Flag转换为二进制时,第0位表示是否可读,第1位表示是否可写。即 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:创建并删除默认读写管道
|
||
|
||
```tsl
|
||
ok := sysExecNewPipe(0);
|
||
echo ok, "\n";
|
||
sysExecDeletePipe();
|
||
```
|
||
|
||
## `sysExecReadPipe([process_handle])`
|
||
|
||
声明:function
|
||
|
||
读取 SysExec 子进程的管道输出;process_handle 可省略,省略时读取默认管道。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------------- | ------- | ---------------- |
|
||
| `process_handle` | integer | 可选子进程句柄。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
pos := 0;
|
||
source := 'sleep(100); echo "pipe-output";';
|
||
writeFile(rwRaw(), "", "child.tsl", pos, length(source), source);
|
||
sysExecNewPipe(0);
|
||
exe_path := sysExecName();
|
||
handle := sysExec(exe_path, array(exe_path, "child.tsl"), nil, false, exit_code);
|
||
output := "";
|
||
while output = "" do
|
||
begin
|
||
output := sysExecReadPipe(handle);
|
||
sleep(50);
|
||
end
|
||
echo trim(output), "\n";
|
||
// 输出:pipe-output
|
||
sysExecDeletePipe(handle);
|
||
sysCloseHandle(handle);
|
||
fileDelete("", "child.tsl");
|
||
```
|
||
|
||
## `sysExecSetEnvs(envs, add_system_env)`
|
||
|
||
声明:function
|
||
|
||
设置后续 SysExec 子进程使用的环境变量。add_system_env 为 0 时不合并系统环境,1 时追加系统环境,2 时将系统环境置于其后。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------------- | ---------- | ------------------------------------------ |
|
||
| `envs` | array\|nil | 环境变量数组;nil 清除已设置的子进程环境。 |
|
||
| `add_system_env` | integer | 系统环境变量的合并方式:0、1 或 2。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
result := sysExecSetEnvs(array("TSL_DOC_CHILD=value"), 2);
|
||
envs := sysExecGetEnvs();
|
||
echo result = 0 and pos("TSL_DOC_CHILD=value", toStn(envs)) > 0, "\n";
|
||
// 输出:1
|
||
sysExecSetEnvs(nil, 0);
|
||
```
|
||
|
||
## `sysExecWritePipe([process_handle,] content)`
|
||
|
||
声明:function
|
||
|
||
向 SysExec 子进程的管道写入内容;process_handle 可省略,省略时写入默认管道。成功时返回写入长度,失败时返回 -1。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------------- | -------------- | ---------------- |
|
||
| `process_handle` | integer | 可选子进程句柄。 |
|
||
| `content` | string\|binary | 请求或管道内容。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
sysExecNewPipe(0);
|
||
handle := sysExec("/bin/cat", "", nil, false, exit_code);
|
||
written := sysExecWritePipe(handle, "pipe-input\n");
|
||
sleep(100);
|
||
output := sysExecReadPipe(handle);
|
||
echo written > 0 and trim(output) = "pipe-input", "\n";
|
||
// 输出:1
|
||
sysTerminate(0, handle);
|
||
sysExecDeletePipe(handle);
|
||
sysCloseHandle(handle);
|
||
```
|
||
|
||
## `sysgetenv(name)`
|
||
|
||
声明:function
|
||
|
||
获取当前运行环境下指定环境变量的值。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------ | -------------------- |
|
||
| `name` | string | 字符串,环境变量名。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前进程的环境变量
|
||
|
||
```tsl
|
||
sysputenv("TSL_DOC_EXAMPLE=value");
|
||
echo sysgetenv("TSL_DOC_EXAMPLE"), "\n";
|
||
```
|
||
|
||
## `sysGetenvs()`
|
||
|
||
声明:function
|
||
|
||
获取当前运行环境的全部环境变量串。
|
||
|
||
返回:array of string
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前进程的环境变量数量
|
||
|
||
```tsl
|
||
echo length(sysGetenvs()), "\n";
|
||
```
|
||
|
||
## `sysGetLastError()`
|
||
|
||
声明:function
|
||
|
||
获得系统操作的最后一个返回代码。
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:读取最近一次系统操作的错误码
|
||
|
||
```tsl
|
||
echo sysGetLastError(), "\n";
|
||
```
|
||
|
||
## `sysGetProcessCmdLine(pid)`
|
||
|
||
声明:function
|
||
|
||
取得指定进程的命令行;失败时返回空字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | --------- |
|
||
| `pid` | integer | 进程 ID。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
echo length(sysGetProcessCmdLine(sysProcessId())) > 0, "\n";
|
||
// 输出:1
|
||
```
|
||
|
||
## `sysGetProcessCmdLinew(pid)`
|
||
|
||
声明:function
|
||
|
||
取得指定进程的宽字符串命令行;失败时返回空字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | --------- |
|
||
| `pid` | integer | 进程 ID。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
echo length(sysGetProcessCmdLinew(sysProcessId())) > 0, "\n";
|
||
// 输出:1
|
||
```
|
||
|
||
## `sysGetProcessList()`
|
||
|
||
声明:function
|
||
|
||
获取当前进程列表信息
|
||
|
||
返回:array,tablearray
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前进程列表数量
|
||
|
||
```tsl
|
||
echo length(sysGetProcessList()), "\n";
|
||
```
|
||
|
||
## `sysGetProcessListw()`
|
||
|
||
声明:function
|
||
|
||
获取当前进程列表信息,信息中字符串为宽字节字符串
|
||
|
||
返回:array,tablearray
|
||
|
||
### 示例
|
||
|
||
范例01:读取宽字符串进程列表数量
|
||
|
||
```tsl
|
||
echo length(sysGetProcessListw()), "\n";
|
||
```
|
||
|
||
## `sysGetProcessNamePath(pid)`
|
||
|
||
声明:function
|
||
|
||
取得指定进程的可执行文件路径;无法取得路径时返回进程名,失败时返回空字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | --------- |
|
||
| `pid` | integer | 进程 ID。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
echo length(sysGetProcessNamePath(sysProcessId())) > 0, "\n";
|
||
// 输出:1
|
||
```
|
||
|
||
## `sysGetProcessNamePathw(pid)`
|
||
|
||
声明:function
|
||
|
||
取得指定进程的宽字符串可执行文件路径;失败时返回空字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | --------- |
|
||
| `pid` | integer | 进程 ID。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
echo length(sysGetProcessNamePathw(sysProcessId())) > 0, "\n";
|
||
// 输出:1
|
||
```
|
||
|
||
## `sysGetProcessPriority(var priority[, pid])`
|
||
|
||
声明:function
|
||
|
||
取得进程优先级并写入 priority。pid 可省略,缺省为当前进程;成功返回 0。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------- | ------------------------------ |
|
||
| `priority` | integer | 进程优先级;读取时为写回参数。 |
|
||
| `pid` | integer | 进程 ID。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
result := sysGetProcessPriority(priority);
|
||
echo result = 0, "\n";
|
||
// 输出:1
|
||
```
|
||
|
||
## `sysGetSubProcesses(pid)`
|
||
|
||
声明:function
|
||
|
||
获得进程的子进程列表
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | ---------------------------------------------------------- |
|
||
| `pid` | integer | 可选。整数,进程ID。未指定时默认获取当前进程内的子进程列表 |
|
||
|
||
返回:array,tablearray
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前进程的子进程列表
|
||
|
||
```tsl
|
||
echo toStn(sysGetSubProcesses(sysProcessId())), "\n";
|
||
```
|
||
|
||
## `sysGetThreadName(tid)`
|
||
|
||
声明:function
|
||
|
||
获取线程名称
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | ------------------------------------------------ |
|
||
| `tid` | integer | 可选。整数,线程ID。未指定时默认获取当前线程名称 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前线程名称
|
||
|
||
```tsl
|
||
sysSetThreadName("TslDocExample");
|
||
echo sysGetThreadName(), "\n";
|
||
```
|
||
|
||
## `sysGetThreadPriority(pri, tid)`
|
||
|
||
声明:function
|
||
|
||
获取线程优先级
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | -------------------------------------------------- |
|
||
| `pri` | integer | 变参,整数,线程优先级 |
|
||
| `tid` | integer | 可选。整数,线程ID。未指定时默认获取当前线程优先级 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前线程优先级
|
||
|
||
```tsl
|
||
status := sysGetThreadPriority(priority);
|
||
echo status, ":", priority, "\n";
|
||
```
|
||
|
||
## `sysGetThreads(pid)`
|
||
|
||
声明:function
|
||
|
||
获取进程内的线程列表
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | -------------------------------------------------------- |
|
||
| `pid` | integer | 可选。整数,进程ID。未指定时默认获取当前进程内的线程列表 |
|
||
|
||
返回:array,tablearray
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前进程的线程列表
|
||
|
||
```tsl
|
||
echo toStn(sysGetThreads(sysProcessId())), "\n";
|
||
```
|
||
|
||
## `sysHandleOfPid(pid, rights, inherithandle)`
|
||
|
||
声明:function
|
||
|
||
Windows上获取进程id对应的句柄,Linux上获取指定文件ID的复制ID。得到的句柄可用函数FAQ:SysCloseHandle进行关闭。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------------- | ------- | ------------------------------------------------------------------- |
|
||
| `pid` | integer | 整数,进程ID |
|
||
| `rights` | integer | 可选。整数,设置进程句柄权限,Linux上无效。常见的权限设置值见下表。 |
|
||
| `inherithandle` | integer | 可选。布尔值,是否继承,Linux上无效 |
|
||
|
||
常见权限值:
|
||
|
||
| 值 | 十进制值 | 访问权限 | 可操作范围 |
|
||
| -------- | -------- | ------------------------------------------- | ------------------------------------- |
|
||
| `0x0010` | 16 | PROCESS_VM_READ | 读取进程内存内容 |
|
||
| `0x0400` | 1024 | PROCESS_QUERY_INFORMATION | 查询完整进程信息(令牌、优先级等) |
|
||
| `0x1000` | 4096 | PROCESS_QUERY_LIMITED_INFORMATION(缺省值) | 仅查询进程基础信息(PID、退出代码等) |
|
||
| `0xFFFF` | 65535 | PROCESS_ALL_ACCESS | 所有权限(包括终止、内存写入等) |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:获取并关闭当前进程句柄
|
||
|
||
```tsl
|
||
handle := sysHandleOfPid(sysProcessId(), 4096, 0);
|
||
echo handle, "\n";
|
||
sysCloseHandle(handle);
|
||
```
|
||
|
||
## `sysKill(pid[, code])`
|
||
|
||
声明:function
|
||
|
||
按进程 ID 终止进程。code 可省略,用于指定进程退出码。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ------------------ |
|
||
| `pid` | integer | 进程 ID。 |
|
||
| `code` | integer | 可选子进程退出码。 |
|
||
|
||
返回:boolean
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
exe_path := sysExecName();
|
||
handle := sysExec(exe_path, array(exe_path, "tsl"), nil, false, exit_code);
|
||
pid := sysPidOfHandle(handle);
|
||
killed := sysKill(pid, 0);
|
||
echo handle > 0 and pid > 0 and killed, "\n";
|
||
// 输出:1
|
||
sysCloseHandle(handle);
|
||
```
|
||
|
||
## `syslinuxkrnlclosemutex(name, isprivate)`
|
||
|
||
声明:function
|
||
|
||
支持在LINUX上手动删除掉因互斥支持产生的系统信号量以及临时目录的文件
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------ |
|
||
| `name` | string | 字符串,互斥锁名称 |
|
||
| `isprivate` | bool | 是否私有 |
|
||
|
||
返回:any
|
||
|
||
### 示例
|
||
|
||
范例01:清理当前脚本创建的 Linux 互斥锁
|
||
|
||
```tsl
|
||
mutex_name := "tsl-doc-linux-mutex";
|
||
mutex := sysCreateMutex(mutex_name);
|
||
sysReleaseMutex(mutex);
|
||
echo syslinuxkrnlclosemutex(mutex_name, 0), "\n";
|
||
```
|
||
|
||
## `sysParamcount()`
|
||
|
||
声明:function
|
||
|
||
获得命令行参数个数。(不包括执行的自身.TSL参数)
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:读取额外命令行参数数量
|
||
|
||
```tsl
|
||
echo sysParamcount(), "\n";
|
||
```
|
||
|
||
## `sysParamStr(index)`
|
||
|
||
声明:function
|
||
|
||
获得命令行的指定索引的参数值。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---- | ---------------------------------------------------------------------------------------------------------------------- |
|
||
| `index` | | 整数,命令行参数的索引号。Index=0,返回值为当前天软脚本文件名称;Index>0,返回值为额外传入的命令行参数值(字符串类型) |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前脚本文件名参数
|
||
|
||
```tsl
|
||
echo sysParamStr(0), "\n";
|
||
```
|
||
|
||
## `sysPidOfHandle(handle)`
|
||
|
||
声明:function
|
||
|
||
根据进程句柄获取进程ID。在Linux上,返回和进程句柄值相同的整数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ------- | -------- |
|
||
| `handle` | integer | 进程句柄 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:从当前进程句柄读取进程 ID
|
||
|
||
```tsl
|
||
handle := sysHandleOfPid(sysProcessId(), 4096, 0);
|
||
echo sysPidOfHandle(handle), "\n";
|
||
sysCloseHandle(handle);
|
||
```
|
||
|
||
## `sysPidOfTid(tid)`
|
||
|
||
声明:function
|
||
|
||
获取线程所属进程ID
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | ------------ |
|
||
| `tid` | integer | 整数,线程ID |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前线程所属的进程 ID
|
||
|
||
```tsl
|
||
echo sysPidOfTid(sysThreadId()), "\n";
|
||
```
|
||
|
||
## `sysPPid(pid)`
|
||
|
||
声明:function
|
||
|
||
获得进程的父进程ID
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | ------------------------------------------------------ |
|
||
| `pid` | integer | 可选。整数,进程ID。未指定时默认获取当前进程的父进程ID |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前进程的父进程 ID
|
||
|
||
```tsl
|
||
echo sysPPid(sysProcessId()), "\n";
|
||
```
|
||
|
||
## `sysProcessId()`
|
||
|
||
声明:function
|
||
|
||
获得运行的进程ID。
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前进程 ID
|
||
|
||
```tsl
|
||
echo sysProcessId(), "\n";
|
||
```
|
||
|
||
## `sysputenv(env_value)`
|
||
|
||
声明:function
|
||
|
||
设置当前运行环境的指定环境变量的值。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | --------------------------- |
|
||
| `env_value` | string | 字符串,环境变量名=变量值。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:设置当前进程的环境变量
|
||
|
||
```tsl
|
||
sysputenv("TSL_DOC_EXAMPLE=value");
|
||
echo sysgetenv("TSL_DOC_EXAMPLE"), "\n";
|
||
```
|
||
|
||
## `sysReleaseMutex(mutex)`
|
||
|
||
声明:function
|
||
|
||
释放一个互斥锁。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ---------------- |
|
||
| `mutex` | integer | 整数,互斥锁编号 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:释放当前脚本创建的互斥锁
|
||
|
||
```tsl
|
||
mutex := sysCreateMutex("tsl-doc-release-mutex");
|
||
echo sysReleaseMutex(mutex), "\n";
|
||
```
|
||
|
||
## `sysSetProcessPriority(priority[, pid])`
|
||
|
||
声明:function
|
||
|
||
设置进程优先级。pid 可省略,缺省为当前进程;成功返回 0。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------- | ------------------------------ |
|
||
| `priority` | integer | 进程优先级;读取时为写回参数。 |
|
||
| `pid` | integer | 进程 ID。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:基本用法
|
||
|
||
```tsl
|
||
get_result := sysGetProcessPriority(priority);
|
||
set_result := sysSetProcessPriority(priority);
|
||
echo get_result = 0 and set_result = 0, "\n";
|
||
// 输出:1
|
||
```
|
||
|
||
## `sysSetThreadName(name, tid)`
|
||
|
||
声明:function
|
||
|
||
设置线程名称
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ------------------------------------------------ |
|
||
| `name` | string | 字符串,要设置的名称 |
|
||
| `tid` | integer | 可选。整数,线程ID。未指定时默认设置当前线程名称 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:设置当前线程名称
|
||
|
||
```tsl
|
||
status := sysSetThreadName("TslDocExample");
|
||
echo status, ":", sysGetThreadName(), "\n";
|
||
```
|
||
|
||
## `sysSetThreadPriority(pri, tid)`
|
||
|
||
声明:function
|
||
|
||
设置线程优先级
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------- | -------------------------------------------- |
|
||
| `pri` | integer | 线程优先级 |
|
||
| `tid` | integer | 可选。线程ID。未指定时默认设置当前线程优先级 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:将当前线程保持为原优先级
|
||
|
||
```tsl
|
||
get_status := sysGetThreadPriority(priority);
|
||
if get_status = 0 then
|
||
set_status := sysSetThreadPriority(priority);
|
||
else
|
||
set_status := get_status;
|
||
echo set_status, "\n";
|
||
```
|
||
|
||
## `sysTerminate(ret_code, handle)`
|
||
|
||
声明:function
|
||
|
||
终止进程。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------- | ------------------------------------------ |
|
||
| `ret_code` | integer | 整数,终止进程返回的代码。 |
|
||
| `handle` | integer | 整数,终止进程的句柄。缺省为终止自身进程。 |
|
||
|
||
返回:any
|
||
|
||
### 示例
|
||
|
||
范例01:终止当前脚本启动的子进程
|
||
|
||
```tsl
|
||
handle := sysExec("/bin/sleep", "5", nil, false, exit_code);
|
||
result := sysTerminate(0, handle);
|
||
echo result, "\n";
|
||
sysCloseHandle(handle);
|
||
```
|
||
|
||
## `sysThreadId()`
|
||
|
||
声明:function
|
||
|
||
获得运行的线程ID。
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前线程 ID
|
||
|
||
```tsl
|
||
echo sysThreadId(), "\n";
|
||
```
|
||
|
||
## `sysThreadSelf()`
|
||
|
||
声明:function
|
||
|
||
获取当前程序的线程ID。
|
||
|
||
返回:integer|int64
|
||
|
||
### 示例
|
||
|
||
范例01:读取当前线程标识
|
||
|
||
```tsl
|
||
echo sysThreadSelf(), "\n";
|
||
```
|
||
|
||
## `sysWaitForMultipleObjects(objects, b_wait_all, wait_ms)`
|
||
|
||
声明:function
|
||
|
||
等待占有多个对象,例如互斥对象。支持windows和linux的进程
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ---------------- | -------------------------------------------------------------------------- |
|
||
| `objects` | array of integer | 一维数字数组,对象句柄数组 |
|
||
| `b_wait_all` | bool | 真假,是否等待所有的对象。为真等待所有的,为假则仅需任意一个对象等待成功。 |
|
||
| `wait_ms` | integer | 整数,等待的毫秒数,-1则为永远等待。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:等待两个本地子进程结束
|
||
|
||
```tsl
|
||
handle1 := sysExec("/bin/true", "", nil, false, exit_code1);
|
||
handle2 := sysExec("/bin/true", "", nil, false, exit_code2);
|
||
wait_result := sysWaitForMultipleObjects(array(handle1, handle2), 1, 5000);
|
||
echo wait_result, "\n";
|
||
sysCloseHandle(handle1);
|
||
sysCloseHandle(handle2);
|
||
```
|
||
|
||
## `sysWaitForSingleObject(object, wait_ms)`
|
||
|
||
声明:function
|
||
|
||
等待占有一个对象,例如互斥对象。支持windows和linux的进程
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ------------------------------------ |
|
||
| `object` | integer | 整数,对象名柄 |
|
||
| `wait_ms` | integer | 整数,等待的毫秒数,-1则为永远等待。 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:等待本地子进程结束
|
||
|
||
```tsl
|
||
handle := sysExec("/bin/true", "", nil, false, exit_code);
|
||
wait_result := sysWaitForSingleObject(handle, 5000);
|
||
echo wait_result, "\n";
|
||
sysCloseHandle(handle);
|
||
```
|