"insnstr"ncurses函数的第二个参数的确切含义是什么



int insnstr(const char *str, int n);

假设使用libncursesw,什么是n?它是(a(字节计数,(b(代码点(wchar_t(计数,(c(字形(cchar_t(计数,还是(d(屏幕列计数?

(如果某些cchar_t具有unicode宽度>1并占据多列。(

因此,首先(6.2 ncurses源代码(显示insnstr被定义为一个调用winnstr的宏。winnstr((在ncurses/base/lib_instr.c.中定义。在USE_WIDEC_SUPPORT保护中,ncurses执行由n绑定的mbstowcs。该结果被馈送到wins_nwstr((中。

因此,在这个上下文中,n似乎限制了进入mbstowcs((的字节数。mbstowcs((需要完整的多字节序列(而不是中断的序列(。因此,在这种情况下,n看起来仍然意味着字节计数,并且应该位于多字节边界上。

相关内容

最新更新