跳转至

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+ 以读/写方式打开一个二进制文件,允许读或在文本末追加数据。