gawk 扩展:文件函数的实现与应用
1. gawk 查找扩展的方式
编译后的扩展必须安装在 gawk 能够找到的目录中。如果 gawk 按照默认方式进行配置和构建,那么查找扩展的目录是/usr/local/lib/gawk。你还可以通过指定一个目录列表作为搜索路径,来让 gawk 查找编译后的扩展。更多信息可参考AWKLIBPATH环境变量。
2. 示例:一些文件函数
在 awk 中,chdir()和stat()这两个有用的函数并不存在。chdir()可以让 awk 程序改变其工作目录,而stat()能让 awk 程序收集文件的相关信息。为了演示 API 的实际应用,我们将在一个扩展中为 gawk 实现这两个函数。
2.1 使用 chdir() 和 stat()
当这些新函数集成到运行的 gawk 解释器中后,我们可以在 awk 层面使用它们。
-使用 chdir():使用起来非常直接,它接受一个参数,即要切换到的新目录。示例代码如下:
@load "filefuncs" ... newdir = "/home/arnold/funstuff" ret = chdir(newdir) if (ret < 0) { printf("could not change to %s: %s\n",