printf
根据 POSIX使用 awk 的函数打印空字节是否合法?无论哪种方式,POSIX 标准awk
似乎都没有明确提及。现实世界的实现在行为方式上有所不同:
+$ gawk 'BEGIN { x = sprintf("\000"); print(length(x)); }'
1
+$ busybox awk 'BEGIN { x = sprintf("\000"); print(length(x)); }'
0
+$
和
+$ gawk 'BEGIN { printf("\000"); }' | xxd
00000000: 00 .
+$ busybox awk 'BEGIN { printf("\000"); }' | xxd
+$
这是在标准中的某处指定的吗?x = sprintf("\000")
如果是,变量 ( ) 和 printf ( )所需的行为是否printf("\000")
相同?