gpt4 book ai didi

c - locale 对 strtol 有什么影响?

转载 作者:行者123 更新时间:2023-11-30 14:55:39 32 4
gpt4 key购买 nike

"The GNU C Library: Parsing of Integers"关于 strtol 说:

In a locale other than the standard "C" locale, this function may recognize additional implementation-dependent syntax.

Documentation on cppreference同意:

Additional numeric formats may be accepted by the currently installed C locale.

我隐约知道 GNU 扩展 scanf("%'d", &intvalue) 用于“选择”使用千位分隔符解析整数;但我的印象是,上面的引文指的是其他东西,特别是关于 strtol 的东西(不是 sscanf ),以及除了通过之外不能“选择退出”的东西将区域设置设置为“C”

什么“其他数字格式”是可能的,以及在什么区域设置?显然,理论上的可能性是无穷无尽的,所以我专门寻找存在于某些当前现实世界系统上的语言环境,和/或在网上有信誉的地方记录了该语言环境。

最佳答案

glibc had a buginfamous Turkish locale相关那是 fixed just recently 。字母 istrtol 中未正确处理,因为土耳其语言环境下的大写版本为 I(U+0130 拉丁文大写字母 I 带有上面的点)。尽管这种行为并非有意为之,但它仍然影响着数百万个现实世界的系统。

也就是说,我很确定没有主要的 C 库实现故意允许其他数字格式。原因很简单,这会导致严重的互操作性问题。

关于c - locale 对 strtol 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45657518/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com