当我在gnome终端上执行ctrl + C / ctrl + V时,readline会关闭我的控制台输入

时间:2012-05-24 09:17:33

标签: gnome readline

环境:   Ubuntu 10.04 LTS   Gnome Desktop v2.30.2   gcc / g ++ 4.4.3   libreadline 6.1

我正在构建一个为其输入多行输入和处理的应用程序,我发现如果输入的大小很大,readline会跳过几个字节的字符。为了确保,我制作了一个简单的程序:

#include <stdio.h>
#include <readline/readline.h>
int main() {
    while (1) {
        char *p = readline("> ");
        if (!p) break;
        fprintf(stderr, "%s\n", p);
    }
    return 0;
}

并生成20000行输入,其中包含120000个字节。

seq -f "%05g" 1 20000 >gen.txt

在gnome终端上运行测试程序并执行gen.txt内容的复制和粘贴:

g++ test.cpp -lreadline
./a.out 2>out.txt
[copy-and-paste the content of gen.txt]

我可以看到out.txt小于gen.txt,省略了很多字节。

wc -c out.txt
119966 out.txt

我想知道哪个组件有缺陷,无论是gnome终端还是readline,并想知道有多少字节的剪贴板内容readline和gnome终端确保可以毫无问题地完成复制和粘贴。

0 个答案:

没有答案