gpt4 book ai didi

c++ - 使用错误的 maxsize 参数调用 strftime 会做什么?

转载 作者:行者123 更新时间:2023-11-30 03:46:13 26 4
gpt4 key购买 nike

我问自己,如果我用错误的 maxsize 参数调用 strftime 函数,它会做什么。这是示例:

char t[19];
struct stat b;
stat(path.c_str(), &b);
strftime(t, 19, "%Y-%m-%d %H-%M-%S", localtime(&b.st_mtime));

这里的问题是时间格式的长度为 19 个字符。但是 strftime() 会在字符串末尾添加一个 \0 字符。那么当我用 maxsize = 19 调用 strftime 时,它会做什么?

  1. 不要添加 \0 字符
  2. 忽略最大大小并将 20 个字节写入 char[] t(因此有缓冲区溢出的风险)
  3. 缩短输出字符串并添加一个\0字符,即“2015-10-12 11-48-1\0”

更新:我使用的是 VS6 编译器 (Win32)

最佳答案

strftime

Return value

The number of bytes written into the character array pointed to by str not including the terminating '\0' on success. If count was reached before the entire string could be stored, ​0​ is returned and the contents are undefined.

关于c++ - 使用错误的 maxsize 参数调用 strftime 会做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34200004/

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