在 www.example.com 我曾指出,inet_pton和inet_ntop UNIX函数可以依赖于区域设置,正如它们所描述的那样。然而,这些函数的输出格式定义得很好,所以我的问题是,它们真的依赖于语言环境吗?有人能告诉我一个配置/库,它们有非标准格式吗?
inet_pton
inet_ntop
b91juud31#
您链接的威胁对MT-Safe locale的解释不正确。这是关于安全类型,而不是关于地点/文化等。但也有可能两个函数都依赖于 locale:如果我没记错的话,关于charset的唯一条件是\0和/是固定的(C要求数字0到9使用连续的编码值)。每个地区都可以定义自己的字符集。在任何情况下,我认为大多数程序只是假设ASCII(或ASCII的子集)。但这种情况非常罕见,我不确定是否正确解释了LC_TYPE。也许POSIX中对字符集有更强的假设。你可以让这两个功能都可以移植。不可移植的方式只是一种捷径:如果你知道长的结构和每个字节的IP(如在IP包),你可以有一个优化的版本。但是,由于许多年(几十年)编译器也将优化可移植代码。
MT-Safe locale
\0
/
C
0
9
LC_TYPE
1条答案
按热度按时间b91juud31#
您链接的威胁对
MT-Safe locale
的解释不正确。这是关于安全类型,而不是关于地点/文化等。但也有可能两个函数都依赖于 locale:如果我没记错的话,关于charset的唯一条件是
\0
和/
是固定的(C
要求数字0
到9
使用连续的编码值)。每个地区都可以定义自己的字符集。在任何情况下,我认为大多数程序只是假设ASCII(或ASCII的子集)。但这种情况非常罕见,我不确定是否正确解释了LC_TYPE
。也许POSIX中对字符集有更强的假设。你可以让这两个功能都可以移植。不可移植的方式只是一种捷径:如果你知道长的结构和每个字节的IP(如在IP包),你可以有一个优化的版本。但是,由于许多年(几十年)编译器也将优化可移植代码。