已向 iostream 接口添加了一组 MT 安全的重入公共函数。 用户指定的缓冲区被作为每个函数的附加参数。这些函数如下所述:
表 11–2 多线程安全的可重入公共函数
功能 |
说明 |
---|---|
char *oct_r (char *buf, int buflen, long num, int width) |
将指针返回到用八进制表示数字的 ASCII 字符串。非零宽度假定为格式化的字段宽度。返回值不保证指向用户提供缓冲区的开始部分。 |
char *hex_r (char *buf, int buflen, long num, int width) |
将指针返回到用十六进制表示数字的 ASCII 字符串。非零宽度假定为格式化的字段宽度。返回值不保证指向用户提供缓冲区的开始部分。 |
char *dec_r (char *buf, int buflen, long num, int width) |
将指针返回到用十进制表示数字的 ASCII 字符串。非零宽度假定为格式化的字段宽度。返回值不保证指向用户提供缓冲区的开始部分。 |
char *chr_r (char *buf, int buflen, long num, int width) |
返回指向包含字符 chr 的 ASCII 字符串的指针。如果宽度非零,则字符串包含后跟 chr 的 width 个空格。返回值不保证指向用户提供缓冲区的开始部分。 |
char *form_r (char *buf, int buflen, long num, int width) |
返回由 sprintf 格式化字符串的指针,其中使用了格式字符串 format 和其余参数。缓冲区必须具有足够的空间以包含格式化的字符串。 |
用来确保与早期版本的 libC 兼容的 iostream 库的公共转换例程(oct、hex、dec、chr 和 form)不是 MT 安全的。