Что означает тип "руна т" в языке с?


Просматривая мой заголовок GCC stddef.h, я наткнулся на тип, о котором никогда не слышал, rune_t:

#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
#if __BSD_VISIBLE
#ifndef _RUNE_T_DECLARED
typedef __rune_t        rune_t;     /* <--- Here it is */
#define _RUNE_T_DECLARED
#endif
#endif
#endif
#endif

В соответствии с окружающими #ifs, Я предполагаю, что это специфический тип FreeBSD, но что он представляет?

Бонусный вопрос: имеет ли он какое-либо отношение к руническому алфавиту?

1 2

1 ответ:

Руна человека

Функции 4.4 BSD rune были отвергнуты в пользу расширенных многобайтовых и широкосимвольных средств ISO C99 и не должны использоваться в новых приложениях. Вместо этого можно использовать setlocale (3), mbrtowc(3), wcrtomb(3), fgetwc(3), ungetwc(3) и fputwc(3).

Раньше это было что-то, что имеет дело с расширенными наборами символов. Экзотические символы иногда в шутку называют "рунами", отсюда и название. Этот тип может поддерживать или не поддерживать настоящий рунический алфавит.