深入探索 gawk 数组操作与 API 应用
1. 扁平数组的释放与操作
当处理完扁平数组后,需要使用特定函数释放其存储空间。调用该函数时,必须传入原始数组的标识符(cookie)以及创建的awk_flat_array_t结构体的地址。若释放成功,函数返回true,否则返回false。
1.1 遍历数组元素
将数组扁平化是为了创建一种结构,使 C 代码能够轻松遍历整个数组。以下是一个示例,展示了如何在 gawk 脚本中操作数组并调用相应的 C 函数:
@load "testext" BEGIN { n = split("blacky rusty sophie raincloud lucky", pets) printf("pets has %d elements\n", length(pets)) ret = dump_array_and_delete("pets", "3") printf("dump_array_and_delete(pets) returned %d\n", ret) if ("3" in pets) printf("dump_array_and_delete() did NOT remove index \"3\"!\n") else printf("dump_array_and_delete() did remove index \"3\"!\n") print "" }<