是否存在任何stdin输入长度限制(输入量或输入速度)?
答案 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&这样