如何在Solaris上设置输入队列的动态大小?

时间:2013-11-17 16:01:08

标签: c unix terminal solaris

我通过fgets读取缓冲区大小为80字节的大小。但是当我在终端写入非常长的行(从limits.h超过MAX_INPUT常量)时,终端响铃我的BEL声音(IMAXBEL启用)。如何在终端输入这么长的线路?我不能强迫用户输入特殊符号。我只能重写程序。

我尝试使用#undef MAX_INPUT - 这不起作用。 如果我禁用IMAXBEL,那么终端只是在输入MAX_INPUT字节后清除输入队列,输入的下一个字节保存在队列开始...并且直到用户输入结束。

1 个答案:

答案 0 :(得分:0)

如果使用文件管道长输入,它是否有效:

./myprog < input_file

它可能与终端实现有关。在这种情况下,使用来自文件的输入是更好的选择(尽管更好的选择可能是重新实现输入逻辑以允许多行输入)