我想知道在linux上的终端上向 stdout 写入数据是否会占用磁盘空间。我尝试在手册页中查找有关 stdout 和 tty 的信息,但似乎没有回答这个问题。
感谢任何提示。
我有一台安装了 openwrt 的路由器,但是路由器的总空间是2MB,现在只剩下12KB了。我想运行一个bash脚本在openwrt系统中打印终端上的一些信息。所以我想知道在将数据打印到stdout时它是否会占用磁盘空间。
答案 0 :(得分:3)
除非输出被重定向(虽然管道是例如tee
,或者是带有>
shell重定向操作符的文件),否则输出将不会转到文件系统。输出到控制台(或终端仿真器)的速度很慢,将其传递到文件系统会使速度变得更慢,并且如果有大量输出,则可能不允许磁盘降速。
但是,如果操作系统认为在实际写入输出之前应该交换进程,那么它可能会在交换空间中结束。
答案 1 :(得分:3)
stdout 不是特定文件或位置(磁盘,内存等) - 它是概念。通常,在linux应用程序中讨论stdout时,我们指的是像object这样的文件(即支持(写入,刷新等)。
输出可以重定向到磁盘上的真实文件,在这种情况下,写入stdout会占用磁盘空间。