Там какие-либо stdin являются входными ограничениями длины (в количестве скорости ввода или скорости ввода)?
Возможно, это зависит от драйвера stdin!
stdin (как концепция) не имеет ограничений.
Я ожидаю, что разработчики ядра (любых систем) сделали некоторый выбор дизайна, который добавляет ограничения.
Есть ограничения в скорость перевода. В общем, они примерно такие же, как и любой канал "UNIX". Большинство операционных систем предлагают более эффективные механизмы, но каналы работают довольно быстро ... при условии, что вы не используете printf и подобные.
Согласно другому любимому сайту вопросов и ответов :
Не должно быть ограничений на размер потока (будь то стандартный ввод или другой). Однако вы, возможно, захотите проверить, где вы храните эти символы ... Достаточно ли места для хранения их всех?
Попробуйте ввести такой код (без сохранения!):
for (;;) {
int c = getc(stdin);
if (c == EOF) { break; }
putc(c, stdout);
}
и посмотрите, есть ли в нем то же самое. ограничение.
Попробуйте:
Команда yes
unix выводит строки y
бесконечно. Передайте его программе на C, которая просто читает стандартный ввод и помещает его в стандартный вывод (например, cat
, но tr 'y' 'y'
также работает). Подождите, пока cat
не выйдет из строя или ваше терпение не достигнет предела:
yes | cat
Что касается фактора скорости, ограничения определяются не языком или ОС, а оборудованием (ЦП, ОЗУ, жесткий диск, SATA, сеть,. ..)
Нет . stdin
не имеет ограничений по длине или скорости.
Если вы хотите получить гигабайты данных через stdin
, вы можете это сделать, и ваш компьютер предоставит их как можно быстрее.
Нет никаких ограничений на длину stdin
. Если вы не можете принимать большие объемы данных, то это ваш код создает проблемы.