17 KiB
运行时 / 系统与进程
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