bash 输出到 /dev/null 比标准输出快 100 倍

问题描述

以下简单程序在定向到 100x 时要快 /dev/null

#include <stdio.h>
int main(int argc,char **argv)
{
    for (int i=0;i<10000000;i++) { printf("%d\n",i); }
    return 0;
}

我怎样才能找到究竟加速的来源?

$ gcc -O0 main.c -o main
$ ./main
$ ./main >/dev/null
$ ./main > output.txt

编辑重定向文件的速度也更快 100x。 所以我猜 /dev/null 与任何其他文件完全一样吗?

解决方法

呃,因为打印到终端很慢?尝试超过 300 波特的连接!