Пользовательский ввод в терминале усечен

В следующем коде:

#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

Другие вопросы по тегам