io_plugin
TSL语言的跨平台实现的io插件。
安装
(已集成到mytsl
发行版中)
动态库文件:Windows: io_plugin.dll 或者 Linux: libio_plugin.so。
把相关的动态库文件拷贝到执行服务器或者TSL目录的plugin目录。
(如果需要下载兼容正式版的Windows版本的动态库文件请访问这里)。
使用指南
提供的TSL函数:
io_open
io_open (file, [mode])
: 打开文件。
-
参数列表
参数 描述 file 文件名。 mode 模式, 可选参数,默认是只读模式,模式见附录。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0 1 文件句柄
io_close
io_close (handle)
: 关闭文件句柄。
-
参数列表
参数 描述 handle 文件句柄 -
返回值 无
io_read
io_read(handle, [length])
: 读取文件。
-
参数列表
参数 描述 handle 文件句柄。 length 长度,可选,默认是读取整个文件内容。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0 1 内容,Binary类型。
io_write
io_write(handle, data, [length])
: 写文件。
-
参数列表
参数 描述 handle 文件句柄 data 数据,变量。 length 长度,可选参数,如果没有就是数据变量的长度。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0 1 写入的字节数
io_pread
io_pread(handle, pos, length)
: 按文件位置读文件。
-
参数列表
参数 描述 handle 文件句柄。 pos 要读取的文件位置。 length 要读取的长度。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0 1 内容,Binary类型。
io_pwrite
io_pwrite(handle, pos, data, length)
: 按文件位置写文件。
-
参数列表
参数 描述 handle 文件句柄。 pos 要写文件位置。 data 数据,变量。 length 要写的长度。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0 1 写入的字节数。
io_seek
io_seek(handle, pos, [origin])
: 设置文件位置。
-
参数列表
参数 描述 handle 文件句柄。 pos 位置。 origin 原始位置,值如下:0 起始位置。1 当前位置。2 末尾位置。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0
io_tell
io_tell(handle)
: 返回当前文件位置。
-
参数列表
参数 描述 handle 文件句柄。 -
返回值
位置,如果发生错误,返回-1。
io_flush
io_flush(handle)
: 把未写入数据写入文件。
-
参数列表
参数 描述 handle 文件句柄。 -
返回值
如果成功返回0,否则返回-1。
io_eof
io_eof(handle)
: 检查是否文件尾。
-
参数列表
参数 描述 handle 文件句柄。 -
返回值
非0表示文件尾。
io_readline
io_readline(handle)
: 读取一行。
-
参数列表
参数 描述 handle 文件句柄。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0 1 内容,Binary类型。
io_writeline
io_writeline(handle, data)
: 写入一行,会加上换行符。
-
参数列表
参数 描述 handle 文件句柄。 data 内容,变量。 -
返回值
数组类型,如果发生错误:
下标 值 0 错误代码 1 错误信息 没有错误:
下标 值 0 0 1 写入的字节数。
io_getchar
io_getchar([count])
: 从标准输入读取指定个数字符。
-
参数列表
参数 描述 count 字符数,可选参数,默认是1个字符。 -
返回值
返回字符串,如果空字符串代表EOF(已结束)。
范例
读写文件
[err, f] := io_open("/tmp/1.txt", "w");
io_write(f, "123");
io_close(f);
[err, f] := io_open("/tmp/1.txt", "r");
echo fmt("{}",io_read(f));
io_close(f);
附录
io_open的mode
字符串 | 说明 |
---|---|
r | 以只读方式打开文件,该文件必须存在。 |
r+ | 以读/写方式打开文件,该文件必须存在。 |
rb+ | 以读/写方式打开一个二进制文件,只允许读/写数据。 |
rt+ | 以读/写方式打开一个文本文件,允许读和写。 |
w | 打开只写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则创建该文件。 |
w+ | 打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则创建该文件。 |
a | 以附加的方式打开只写文件。若文件不存在,则会创建该文件;如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(EOF 符保留)。 |
a+ | 以附加方式打开可读/写的文件。若文件不存在,则会创建该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(EOF符不保留)。 |
wb | 以只写方式打开或新建一个二进制文件,只允许写数据。 |
wb+ | 以读/写方式打开或新建一个二进制文件,允许读和写。 |
wt+ | 以读/写方式打开或新建一个文本文件,允许读和写。 |
at+ | 以读/写方式打开一个文本文件,允许读或在文本末追加数据。 |
ab+ | 以读/写方式打开一个二进制文件,允许读或在文本末追加数据。 |