功能

GLibascii_strtoull

since: 2.2

声明 [src]

guint64
g_ascii_strtoull (
  const gchar* nptr,
  gchar** endptr,
  guint base
)

描述 [src]

将字符串转换为 guint64 值。

此函数的行为与 C 本地化设定中的标准 strtoull() 函数的行为相同。它会执行此操作而不实际更改当前的本地化设定,因为那并不是线程安全的。

请注意,它接受带有前导减号 (-) 的输入,并会返回已解析数字的否定值,除非该值会使 guint64 发生溢出。至关重要的是,这意味着你不能假设短的固定长度输入会产生一个低返回值,因为输入可能带有前导 -

通常在读取配置文件或其他应与本地化设定无关的非用户输入时使用此函数。若要处理来自用户的输入,通常应使用区域敏感的系统 strtoull() 函数。

如果正确的值会导致溢出,则返回 G_MAXUINT64,并将 ERANGE 存储在 errno 中。如果基数超出有效范围,则返回零,并将 EINVAL 存储在 errno 中。如果字符串转换失败,则返回零,并且 endptr 返回 nptr(如果 endptr 不是 NULL)。

自以下版本可用:2.2

参数

nptr

类型: const gchar*

要转换为数值的字符串。

数据由函数的调用者拥有。
该值是一个以 NUL 结尾的 UTF-8 字符串。
endptr

类型: gchar**

如果非 NULL,则返回转换中使用的最后一个字符后的字符。

这个参数将由函数设置。
这个参数可以是 NULL
返回的数据由函数拥有。
该值是一个以 NUL 结尾的 UTF-8 字符串。
base

类型: guint

用于转换,2..36 或 0。

返回值

类型: guint64

转换的值,或出现错误时为零。