stdin的长度有限吗?

时间:2010-03-12 02:39:03

标签: c++ c stdin

是否存在任何stdin输入长度限制(输入量或输入速度)?

6 个答案:

答案 0 :(得分:7)

即可。 stdin对长度或速度没有限制。

如果您想通过stdin获取数GB的数据,您的计算机将尽快提供。

答案 1 :(得分:2)

根据每个人的其他favorite Q&A site

流大小不应该有限制(无论是stdin还是其他)。然而,您可能想要检查的是存储这些字符的位置......是否有足够的空间来存储它们?

尝试这样的代码(不存储!):

for (;;) {
    int c = getc(stdin);
    if (c == EOF) { break; }
    putc(c, stdout);
}

并查看它是否具有相同的限制。

答案 2 :(得分:1)

stdin没有任何长度限制。如果您无法接收大量数据,那么您的代码就会产生问题。

答案 3 :(得分:1)

这可能取决于stdin驱动程序!

stdin(作为一个概念)没有限制。

我希望(任何系统的)内核开发人员做出一些设计选择,增加了限制。

答案 4 :(得分:1)

试一试:

yes unix命令无休止地输出y行。将它传递给只读取标准输入并将其放在标准输出上的C程序(例如cat,但tr 'y' 'y'也可以)。等到cat崩溃或您的耐心达到极限:

yes | cat

关于速度因素,限制不是由语言或操作系统决定,而是由硬件(CPU,RAM,硬盘,SATA,网络......)确定。

答案 5 :(得分:0)

转移速度有限制。通常,它们与任何“UNIX”管道大致相同。大多数操作系统都提供了更有效的机制,但是管道非常快......假设您没有使用printf&这样

相关问题