Итак, во-первых, оказывается (источник 6.2 ncurses), что insnstr определяется как макрос, вызывающий winsnstr. winsnstr () определена в ncurses / base / lib_insnstr. c. там, внутри USE_WIDEC_SUPPORT, ncurses выполняет mbstowcs, привязанные к n. этот результат передается в wins_nwstr ().
, поэтому кажется, что n в этом контексте ограничивает количество байтов, идущих в mbstowcs (). mbstowcs () требует целых многобайтовых последовательностей (а не прерванных). поэтому в этом контексте n по-прежнему будет означать количество байтов и должно располагаться на многобайтовой границе.