绑定ncurses的最佳实践' getstr

时间:2017-10-11 03:03:03

标签: c lua

我正在为ncurses创建Lua绑定,我想实现getstr,它从用户读取一个字符串。我希望字符串基本上没有大小,就像Lua一样,但我不知道如何实现它。我只是读了一个非常大的字符数组,或者我用getch做了一些魔法,直到我读到换行符?

我看到lcurses使用LUAL_BUFFERSIZE但这个内存有效吗?这是最好的做法吗?

1 个答案:

答案 0 :(得分:1)

标准算法是从一个合理大小的缓冲区开始,只在需要时调整大小。对于终端处的用户输入,可以安全地假设输入不能超过大约一百个字符左右。从一个大小的缓冲区开始,并且只在必要时使其变大。

请确保您使用的是wgetnstr(),以便限制输入的大小,但我个人会使用wgetch()

获得正确获取的字符串后,将其放入LUA字符串并清理内存。

相关问题