" io.popen"的目的是什么?功能?

时间:2015-08-08 03:00:18

标签: lua

我正在使用名为AutoTouch的iOS应用程序。此应用程序使用基于Lua语言的脚本。 AutoTouch的开发人员包括调用io.popen功能的可能性,但是我无法找到任何可以理解的"其使用的例子。

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

io.popen(prog[,mode])
     

在一个单独的进程中启动程序prog并返回一个文件句柄,您可以使用该句柄从该程序读取数据(如果mode是" r",默认值)或将数据写入此程序(如果模式是" w")。

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

我之所以问的原因是因为我想将保存在AutoTouch默认文件夹中的屏幕截图复制到Camera Roll文件夹。我以为我可以用某种方式使用Terminal的命令来做到这一点。

1 个答案:

答案 0 :(得分:3)

popen的主要 p 表示管道。此函数是C function周围的一个瘦包装器,它通过命令prog启动一个进程,另外在主机(您的程序)和生成的进程之间构建一个管道,方向为mode。此管道允许通信,因此您可以读取进程到目前为止写入标准输出的内容,或者进程等待标准输入,您可以使用此服务。它经常被用于获取流行的Unix程序的输出,这些功能很难作为源代码编写。

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