Awk编程:输出、表达式及数据转换详解
1. close()函数返回值的使用
在许多旧版本的Unix awk中, close() 函数实际上是一条语句。尝试使用 close() 函数的返回值会导致语法错误,示例代码如下:
command = "…"
command | getline info
retval = close(command) # syntax error in many Unix awks
在gawk中, close() 被视为函数。如果参数指定的内容从未通过重定向打开,或者在关闭文件或进程时出现系统问题,返回值为 -1。在这些情况下,gawk会将预定义变量 ERRNO 设置为描述问题的字符串。
当关闭管道或协进程(输入或输出)时,返回值是命令的退出状态。否则,关闭输入或输出文件时,返回值分别是系统 close() 或 fclose() C函数的返回值。关闭成功时该值为零,失败则为 -1。
POSIX标准对此描述模糊,仅指出 close() 成功时返回零,否则返回非零值。不同实现对于关闭管道时的返回值报告不同,因此返回值不具备可移植性。在POSIX模式下,gawk关闭管道时仅返回零。
2. 输出语句总结
- print语句 :打印以逗号分隔的表达式,每个
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



