1. 程式人生 > >socks 程式設計中的 strncpy_s 坑

socks 程式設計中的 strncpy_s 坑

  • 首先簡述問題: 用 fopen_s 開啟檔案,用 fread 從檔案中讀檔案,再用 strncpy_s 複製緩衝區 A 到 另一記憶體塊 B (不要問為什麼反正用到了),send B,在另一個機器 recv B,寫檔案,檔案不全! 原因:出自 strncpy_s.
  • 解答:
程式設計:
char s[10]="123\0\0abcd";
char str1[10]={0};
strncpy_s(str1,10,s,10);

此時 str1 內容是 (用 ASCII 碼錶示)
49 50 51 0 -2 -2 -2 -2 -2 -2

與期望傳送的 s 內容(用 ASCII 碼錶示)
49 50 51 0 0 97 98 99 100 0
不一致
所以寫的檔案不全