“io.popen” 函数的目的是什么?

我正在使用一个名为AutoTouch的iOS应用程序。该应用程序使用基于Lua语言的脚本。AutoTouch的开发人员包括调用io.popen函数的可能性,但是我找不到任何“可理解的”使用示例。

例如,我找到了这个描述:

io.popen(prog[,mode])

启动以prog作为程序的程序,并返回您可以使用该文件句柄从该程序读取数据的文件句柄(如果模式为“r”,则为默认值),或者向该程序写入数据(如果模式为“w”)。

这是否意味着通过此函数可以使用任何可通过常规iOS终端(在越狱系统上)访问的命令或应用程序?

我询问的原因是我想将保存在AutoTouch默认文件夹中的屏幕截图复制到相机胶卷文件夹中。我想我可以以某种方式使用终端的命令来完成此操作。

点赞
用户2546626
用户2546626

popen函数中的前缀 p 代表 管道。该函数是对 C 函数 的简单封装,通过命令 prog 启动一个进程,同时创建一个管道来连接本地程序(您的程序)和生成的进程,管道的方向由 mode 指定。该管道允许双向通信。因此,您可以读取该进程迄今为止写入标准输出的内容,或该进程等待标准输入,您可以提供此内容。通常用于获取流行的Unix程序的输出,这些程序的功能作为源代码编写是一种痛苦。

对于文件复制,使用popen是一个肮脏的方式。不幸的是,没有 os.copy 函数,因此您必须使用io.* 函数(对于二进制文件,如图像,必须以二进制模式打开)。

2015-08-08 06:55:00