313 lines
17 KiB
Markdown
313 lines
17 KiB
Markdown
# 运行时 / 系统与进程
|
||
|
||
## `sysdbfread(alias, file_name, value, is_col_info)`
|
||
|
||
读取本地DBF格式数据文件的内容,或者读取本地DBF格式数据文件的结构定义。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | ------ | ---------------------- |
|
||
| `alias` | string | 字符串类型,目录别名。 |
|
||
| `file_name` | bool | 字符串类型,文件名称。 |
|
||
| `value` | string | object |
|
||
| `is_col_info` | bool | object |
|
||
|
||
返回:bool
|
||
|
||
## `sysdbfwrite(alias, file_name, value, col_info)`
|
||
|
||
将数据导出为DBF的格式的数据文件。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ---------------------------------------------------------------------------- |
|
||
| `alias` | string | 字符串类型,目录别名。 |
|
||
| `file_name` | array | 字符串类型,文件名称。 |
|
||
| `value` | string | 输出的数据内容,必须有字符串列名。 |
|
||
| `col_info` | array | 数组,数据导出的结构定义,若缺省则和exportfile的行为一致,采用自动判别类型。 |
|
||
|
||
返回:bool
|
||
|
||
## `sysErrorMessage(code)`
|
||
|
||
返回指定代码表示的系统错误信息。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ---- | -------------- |
|
||
| `code` | int | 整数,提示代码 |
|
||
|
||
返回:string
|
||
|
||
## `sysexec(prog, cmdline, startupdir, wait, code, waitms, return_value)`
|
||
|
||
创建子进程执行操作系统命令。在指定目录下使用指定文件执行指定命令。指定目录可以为nil;指定命令可以为字符串,比如”py -V”,也可以为数组,比如array(“py”,”-V”)。 注:本定义方式功能只在新一代客户端版本中支持。 旧版本中用户请参考函数原定义说明:FAQ:SysExec 另外,关于code中返回的退出码(返回码),即为子进程终止时通过SysTerminate传递出来的退出码,当无此命令时,默认为0。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||
| `prog` | string | 字符串,执行命令的文件所在路径。 |
|
||
| `cmdline` | string | 字符串或数组,命令行命令。 例如:tsl abcd.tsl,也可以分割的数组,例如array(“tsl”,”abcd.tsl”) |
|
||
| `startupdir` | string | NIL或字符串,执行命令时所处的目录路径。 |
|
||
| `wait` | bool | object |
|
||
| `code` | array | 数值或数组,输出参数,进程的退出码。当存在管道输出且采用阻塞方式运行进程时, code为数组,下标”code”为返回码,”out”下标是运行的进程的标准输出里输入的内容。 另,在阻塞模式下,当等待超时的情况下,也还可以使用SysexecReadpipe读取后续输出的信息。 |
|
||
| `waitms` | int | 正整数,可选参数,等待阻塞的毫秒数。 |
|
||
| `return_value` | any | 数值,进程句柄。 |
|
||
|
||
返回:int
|
||
|
||
## `sysexecreadpipe(process_handle)`
|
||
|
||
获得指定进程所在管道的输出内容。参数缺省时,获得默认管道的输出内容。 在阻塞式运行sysexec的情况下,可以直接获得内容,在非阻塞式运行外部进程的时候,需要多次进行循环读取输出。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------------- | ---- | -------------------------- |
|
||
| `process_handle` | any | 数值,可选参数,进程句柄。 |
|
||
|
||
返回:string
|
||
|
||
## `sysexecsetenvs(envs, addsysenv)`
|
||
|
||
重新设置子进程的环境变量,使得子进程与主进程的环境变量不一样,应用于Sysexec创建的子进程。不设置的情况下子进程的环境变量与主进程一致。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------- | ---- |
|
||
| `envs` | array | nil |
|
||
| `addsysenv` | 0\|1\|2 | 1\\ |
|
||
|
||
返回:int
|
||
|
||
## `sysExecWritePipe(content)`
|
||
|
||
向指定进程所在管道写入输入内容。参数缺省时,向默认管道写入输入内容。 管道的长度是有限的,当管道长度被占用了,需要等待空间被释放后再进行(即时读取管道信息可以被释放),即它是一个阻塞式的过程。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------ | ----------------------------------------------------- |
|
||
| `content` | string | 字符串,输入内容。比如输入”=quit\r\n”可以退出当前进程 |
|
||
|
||
返回:int
|
||
|
||
## `sysGetFuncdepends(fun, flag, cfuninfo, binclassinfo)`
|
||
|
||
获取目标函数或类的依赖关系。 可以用于查找用户函数、公用函数与本地函数的依赖,但无法查找系统函数。当查找本地函数时,函数文件后缀必须是.tsf。 服务器执行时,由于权限问题,返回结果可能并不完整。用户可以使用本地执行或者rdo2执行来获取完整的依赖信息。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---------------------------------------------- | ------------------------------------------------------------------------------ |
|
||
| `fun` | TFUNCTION | 查找依赖的函数或者类 |
|
||
| `flag` | int | 整型,缺省值为0,查找的依赖关系类型如下(若多选时,可以将相应取值相加后传入): |
|
||
| `cfuninfo` | 依赖不检查子函数,仅通过函数调用等规则查找依赖 | 数组,输出值,返回依赖的二进制函数信息 |
|
||
| `binclassinfo` | 显示所有被依赖的子函数,缺省只显示主函数 | 数组,输出值,返回依赖的二进制类信息 |
|
||
|
||
返回:funInfo
|
||
|
||
## `sysGetPidOfCom(obj)`
|
||
|
||
获得COM对象对应的进程ID,由于com的限制,仅当进程ID<65535才有效,一旦返回值为65535表示进程ID超过65535。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------ | --------- |
|
||
| `obj` | ComObj | Com对象。 |
|
||
|
||
返回:int
|
||
|
||
## `sysGetProcessCmdLine(pid, return_value)`
|
||
|
||
获取指定进程的执行命令行
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ------ | ---------------------------------------------------- |
|
||
| `pid` | int | 整数,进程ID |
|
||
| `return_value` | string | 获取成功,返回指定进程的执行命令;否则,返回空字符串 |
|
||
|
||
返回:string
|
||
|
||
## `sysGetProcessCmdLinew(pid, return_value)`
|
||
|
||
获取指定进程的cmd执行命令,返回结果为宽字节字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | --------------------------------------------------------------------------- |
|
||
| `pid` | int | 整数,进程ID |
|
||
| `return_value` | int | 获取成功,返回指定进程的cmd执行命令,格式为宽字节字符串;否则,返回空字符串 |
|
||
|
||
返回:string
|
||
|
||
## `sysGetProcessNamePath(pid, return_value)`
|
||
|
||
获取指定进程路径,若无法获得路径返回进程的名称
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ------ | ---------------------------------------------------------------------------- |
|
||
| `pid` | int | 整数,进程ID |
|
||
| `return_value` | string | 获取成功,返回指定进程路径,若无法获得路径返回进程的名称;否则,返回空字符串 |
|
||
|
||
返回:string
|
||
|
||
## `sysGetProcessNamePathw(pid, return_value)`
|
||
|
||
获取指定进程路径,返回结果为宽字节字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | ------------------------------------------------------------------ |
|
||
| `pid` | int | 整数,进程ID |
|
||
| `return_value` | int | 获取成功,返回指定进程路径,格式为宽字节字符串;否则,返回空字符串 |
|
||
|
||
返回:string
|
||
|
||
## `sysGetProcessPriority(pri, pid, return_value)`
|
||
|
||
获取进程优先级
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | ------------------------------------------------------ |
|
||
| `pri` | int | 变参,整数,进程优先级 |
|
||
| `pid` | int | 整数,可选参数,进程ID。未指定时默认获取当前线程优先级 |
|
||
| `return_value` | int | 返回值为0,获取成功;否则,获取失败 |
|
||
|
||
返回:int
|
||
|
||
## `sysGetThreadName(tid, return_value)`
|
||
|
||
获取线程名称
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ------ | ---------------------------------------------------- |
|
||
| `tid` | int | 整数,可选参数,线程ID。未指定时默认获取当前线程名称 |
|
||
| `return_value` | string | 获取成功,返回线程名称;否则,返回空字符串 |
|
||
|
||
返回:string
|
||
|
||
## `sysGetThreadPriority(pri, tid, return_value)`
|
||
|
||
获取线程优先级
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | ------------------------------------------------------ |
|
||
| `pri` | int | 变参,整数,线程优先级 |
|
||
| `tid` | int | 整数,可选参数,线程ID。未指定时默认获取当前线程优先级 |
|
||
| `return_value` | int | 返回值为0,获取成功;否则,获取失败 |
|
||
|
||
返回:int
|
||
|
||
## `sysGetThreads(pid, return_value)`
|
||
|
||
获取进程内的线程列表
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----- | ------------------------------------------------------------ |
|
||
| `pid` | int | 整数,可选参数,进程ID。未指定时默认获取当前进程内的线程列表 |
|
||
| `return_value` | array | 获取成功,返回线程ID列表;否则,返回空数组 |
|
||
|
||
返回:array
|
||
|
||
## `sysHandleOfPid(pid, rights, inherithandle, return_value)`
|
||
|
||
Windows上获取进程id对应的句柄,Linux上获取指定文件ID的复制ID。得到的句柄可用函数FAQ:SysCloseHandle进行关闭。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------------- | ---- | ---------------------------------------------------------------------------------------------------------------------- |
|
||
| `pid` | int | 整数,进程ID |
|
||
| `rights` | int | 整数,可选参数,设置进程句柄权限,Linux上无效。常见的权限设置值如下: 更多说明,可参考微软官方文档:处理安全和访问权限 |
|
||
| `inherithandle` | bool | 布尔值,可选参数,是否继承,Linux上无效 |
|
||
| `return_value` | 16 | 获取成功,返回进程句柄;否则,返回0 |
|
||
|
||
返回:IntPtr\|int
|
||
|
||
## `sysKill(pid, code, return_value)`
|
||
|
||
终止进程。在WINDOWS上,和FAQ:SysTerminate不同之处是,SysTerminate参数为进程句柄,SysKill参数是进程ID。LINUX上两者一致
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | ---------------------------------- |
|
||
| `pid` | int | 整数,进程ID |
|
||
| `code` | int | 整数,可选参数,终止进程返回的代码 |
|
||
| `return_value` | bool | object |
|
||
|
||
返回:bool
|
||
|
||
## `sysPidOfHandle(handle, return_value)`
|
||
|
||
根据进程句柄获取进程ID。在Linux上,返回和进程句柄值相同的整数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | --------------------------------- |
|
||
| `handle` | int | 进程句柄 |
|
||
| `return_value` | int | 获取成功,返回进程ID;否则,返回0 |
|
||
|
||
返回:int
|
||
|
||
## `sysPidOfTid(tid, return_value)`
|
||
|
||
获取线程所属进程ID
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | --------------------------------- |
|
||
| `tid` | int | 整数,线程ID |
|
||
| `return_value` | int | 获取成功,返回进程ID;否则,返回0 |
|
||
|
||
返回:int
|
||
|
||
## `sysPPid(pid, return_value)`
|
||
|
||
获得进程的父进程ID
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | ---------------------------------------------------------- |
|
||
| `pid` | int | 整数,可选参数,进程ID。未指定时默认获取当前进程的父进程ID |
|
||
| `return_value` | int | 获取成功,返回父进程ID;否则,返回0 |
|
||
|
||
返回:int
|
||
|
||
## `sysSetProcessPriority(pri, pid, return_value)`
|
||
|
||
设置进程优先级
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | ------------------------------------------------------ |
|
||
| `pri` | int | 整数,进程优先级 |
|
||
| `pid` | int | 整数,可选参数,进程ID。未指定时默认设置当前进程优先级 |
|
||
| `return_value` | int | 返回值为0,设置成功;否则,设置失败 |
|
||
|
||
返回:int
|
||
|
||
## `sysSetThreadName(name, tid, return_value)`
|
||
|
||
设置线程名称
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ------ | ---------------------------------------------------- |
|
||
| `name` | string | 字符串,要设置的名称 |
|
||
| `tid` | int | 整数,可选参数,线程ID。未指定时默认设置当前线程名称 |
|
||
| `return_value` | int | 返回值为0,设置成功;否则,设置失败 |
|
||
|
||
返回:int
|
||
|
||
## `sysSetThreadPriority(pri, tid, return_value)`
|
||
|
||
设置线程优先级
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ---- | ------------------------------------------------ |
|
||
| `pri` | int | 线程优先级 |
|
||
| `tid` | int | 可选参数,线程ID。未指定时默认设置当前线程优先级 |
|
||
| `return_value` | int | 返回值为0,设置成功;否则,设置失败 |
|
||
|
||
返回:int
|
||
|
||
## `syssettsllibpath(path_list)`
|
||
|
||
设置函数库查找路径(支持分号分隔的多个目录)。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ----- | -------------------------- |
|
||
| `path_list` | array | 路径列表字符串(分号分隔) |
|
||
|
||
返回:string
|
||
|
||
## `sysWaitForSingleObject(object, wait_ms)`
|
||
|
||
等待占有一个对象,例如互斥对象。支持windows和linux的进程
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ---- | ------------------------------------ |
|
||
| `object` | int | 整数,对象名柄 |
|
||
| `wait_ms` | int | 整数,等待的毫秒数,-1则为永远等待。 |
|
||
|
||
返回:int
|