Пользовательский ввод в терминале усечен
В следующем коде:
#include <iostream>
#include <string>
using namespace std;
int main() {
string my_str;
cout << "Enter a large string:" << endl;
getline (cin, my_str);
cout << my_str << endl;
return 0;
}
Когда вводится большая строка (без пробелов), печатаются только первые 4095 символов. Зачем? (Ubuntu 14.4, g++ 4.9.3)
Благодарю.
1 ответ
Решение
В Linux максимальное количество символов, которое можно прочитать за один проход на терминале, определяется значением N_TTY_BUF_SIZE в исходном коде ядра. Значение 4096