麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

strncpy與snprintf 的用法比較

2020-01-26 15:57:59
字體:
來源:轉載
供稿:網友

strncpy的正確用法:
strncpy(dest, src, sizeof(dest));
dest[sizeof(dest)-1] = ‘/0';

snprintf的正確用法:
snprintf(dest, sizeof(dest), "%s", src);

strncpy的問題:
1.size一定要用sizeof(dest)或sizeof(dest)-1,不可誤用sizeof(src).
2.手工填0. 務必要把dest的最后一個字節手工設置為0. 因為strncpy僅在src的長度小于dest時,對剩余的字節填0.
3.性能問題。當dest長度遠大于src時,由于strncpy會對多余的每個字節填0,會有很大的性能損失。
4.返回值。strncpy返回dest,因而無法知道拷貝了多少個字節。

snprintf的問題:
1.不可省略第三個參數"%s",隱患是,如果src中包含%,會引發core。
2.性能問題。當src長度遠大于dest時,由于snprintf要返回src的字節數,需要掃描src,會有很大的性能損失。
3.返回值。如果當前buf夠用,返回實際寫入的字符數;如果不夠用,返回將要寫入的字符數。換句話說,返回值就是傳入的字符數目。

總結:
1.snprintf使用比strncpy簡潔。
2.snprintf可以獲取被拷貝的字節數。
3.二者都有性能問題。如果src遠大于dest,用strncpy;如果dest遠大于src,用snprintf。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: hdhdhd69ⅹxxx黑人 | 欧美一级黄色片免费观看 | 91av久久 | 欧美爱爱视频免费看 | 欧产日产国产精品乱噜噜 | 亚洲视频在线一区二区 | 欧美乱码精品一区 | wwwxxx免费视频| 日韩色电影 | 91成人一区二区三区 | 久草视频在线看 | 色网站综合 | 韩国19禁在线 | 斗罗破苍穹在线观看免费完整观看 | 广州毛片 | 国产成年人在线观看 | 午夜视频国产 | 99亚洲| 欧美一级免费视频 | 色中色综合网 | 国产精品91在线 | 国产毛片网站 | 欧洲精品色 | 精品亚洲综合 | 一级在线视频 | 国产精品一区二区视频 | 国产精品毛片无码 | 欧美成人高清视频 | 国产精品亚洲激情 | 成人在线视频在线观看 | 日韩av在线播放一区 | 亚洲精品a级 | 91 视频网站 | 久久久久久久久久网 | 久久久久免费精品国产小说色大师 | 久色亚洲 | 亚洲91在线| 亚洲一区二区不卡视频 | 欧美视频首页 | 九九热精品免费视频 | 少妇的肉体2无删减版 |