Linux 工具 dc 给出"stack underflow"错误



我正试图通过shell计算一个浮点数。当我执行以下行时,dc工具失败。

dc -e "4000 0.531 / p"

首先,我认为问题与浮动精度有关。然后,我尝试用一个整数来改变除法器。不幸的是,结果是一样的。

dc -e "4000 1000 / p"

上面的两个执行都给出了相同的错误:

dc:堆栈下溢

主机CPU是放置在Zynq Ultrascale+SoC内的ARM Cortex A53。原因是什么?我该如何解决?

其他信息

dc --version的输出也给出相同的输出。

dc:堆栈下溢

幸运的是,dc --help可以工作,并显示如下版本。

BusyBox v1.24.1(2021-12-08 08:10:27 UTC(多调用二进制。

type dc的输出如下

dc被散列(/usr/bin/dc(

原因是什么?

Busyboxdc不接受任何-e参数。因为-e被解析为-,后面跟着命令e,所以-尝试弹出两个值,堆栈为空。

如何解决它?

只是:

dc "4000 0.531 / p"

正确的方法是通过管道将数据传输到stdin。

echo "4000 0.531 / p" | dc

相关内容

最新更新