【发布时间】:2012-02-29 16:56:11
【问题描述】:
我开始为我正在学习的课程设计一个在 Linux 终端中运行的 shell 应用程序。
当然,这将涉及从用户读取可变长度的输入字符串(命令)。我知道我可以简单地将每个命令读入一个我认为合适的大小的缓冲区,但这有可能 a) 截断命令或 b) 导致缓冲区溢出。
如果可能,如何限制用户输入到控制台的长度?
比如说,如果我将命令长度设置为 3,123 将被允许,但如果123 已经存在于输入字符串中(在用户按下回车之前)并且用户尝试添加4 ,任何字符都不会打印到控制台,甚至可能带有“错误 ping”。
我意识到我可以设计这样的功能,但如果需要,我不知道从哪里开始做这样的事情。
将不胜感激预先存在的解决方案或关于实施我自己的解决方案的建议。
编辑:
我想一个廉价而简单的解决方案是一次读取一个字符上的命令,直到达到输入信号或达到最大长度。这种解决方案会出现问题吗?
【问题讨论】: