运行该dc
实用程序时,如果我输入一个非常大的数字,请说:
999999999999999999999999999999999999999999999999999999999999999999999999
当我使用打印出来时p
,我得到:
999999999999999999999999999999999999999999999999999999999999999999999\
999
为什么它在 69 位数字后拆分输出?
运行该dc
实用程序时,如果我输入一个非常大的数字,请说:
999999999999999999999999999999999999999999999999999999999999999999999999
当我使用打印出来时p
,我得到:
999999999999999999999999999999999999999999999999999999999999999999999\
999
为什么它在 69 位数字后拆分输出?
终端传统上是 80x24(左右),在这样的环境中,长行换行可能会出现问题,这可能解释了 unix 传统的换行长行并用
\
.这是一个非常古老的限制,
dc(1)
在Version 6 AT&T UNIX source 中包含:(复古计算的人可能会详细告诉你为什么长行是个问题;有人可能会怀疑当时的行式打印机可能没有神奇的长行换行功能,所以要正确打印某些东西,它真的会需要适合页面...)
至少对于 的 GNU 实现
dc
,有DEFAULT_LINE_MAX
70 个字符的硬编码 - 尽管可以通过设置DC_LINE_LENGTH
环境变量来覆盖它。来自dc/numeric.c
:所以
但