2016年5月23日 星期一

很難用的 strncpy

  1. http://ideone.com/5K2BDn
  2. http://ideone.com/KokRhz

我是以 c++ 為主力, 幾乎都是用 std::string, c style string 讓我吃盡苦頭。list 1, 2 展示了 strncpy 的難用之處, 要非常的小心, strncpy 的行為有時候幫你加 '\0', 有時候又不會。

《strcpy ,strncpy ,strlcpy地用法》已經做了解釋就不再多言了, 要小心的是其建議寫法:

strncpy 的标准用法为:(手工写上 /0)

strncpy(path, src, sizeof(path) - 1);
path[sizeof(path) - 1] = '/0';
len = strlen(path);

path 得確定是個 array 才行, 若是指標那就要倒大楣了。

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。