青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小明思考

高性能服務(wù)器端計(jì)算
posts - 70, comments - 428, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

談?wù)剆nprintf

Posted on 2006-09-29 10:27 小明 閱讀(34537) 評(píng)論(8)  編輯 收藏 引用 所屬分類: C/C++
眾所周知,sprintf不能檢查目標(biāo)字符串的長(zhǎng)度,可能造成眾多安全問題,所以都會(huì)推薦使用snprintf.

snprintf(_snprintf)的聲明是這樣的

int _snprintf(
?? char *buffer,
?? size_t count,
?? const char *format [,
????? argument] ...
);

If len < count, then len characters are stored in buffer, a null-terminator is appended, and len is returned.

If len = count, then len characters are stored in buffer, no null-terminator is appended, and len is returned.

If len > count, then count characters are stored in buffer, no null-terminator is appended, and a negative value is returned.


最常見的錯(cuò)誤用法有:
1.
char sa[256]={0};
_snprintf(sa,sizeof(sa),"%s",sb);
//錯(cuò)誤原因:當(dāng)sb的長(zhǎng)度>=256的時(shí)候,sa將沒有'\0'結(jié)尾

2.
char sa[256];
_snprintf(sa,sizeof(sa)-1,"%s",sb);
//錯(cuò)誤原因:當(dāng)sb的長(zhǎng)度>=255的時(shí)候,sa將沒有'\0'結(jié)尾,忘記給sa初始化

3.
char sa[256];
_snprintf(sa,sizeof(sa)-1,"%s",sb);
sa[sizeof(sa)]=0;
//錯(cuò)誤原因:最后一行數(shù)組越界

正確的用法
1. //推薦用法
char sa[256];
sa[sizeof(sa)-1]=0;
_snprintf(sa,sizeof(sa),"%s",sb);
if(sa[sizeof(sa)-1]!=0)
{
???printf("warning:string will be truncated");
?? sa[sizeof(sa)-1]=0;
}

2.
char sa[256]={0};
int?result = _snprintf(sa,sizeof(sa),"%s",sb);
if(result==sizeof(sa) || result<0)
{
????printf("warning:sting will be truncated");
?? sa[sizeof(sa)-1]=0;
}

Feedback

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2006-09-30 16:48 by 阿福
朋友,我覺得我的方法更簡(jiǎn)單,更好:
char sa[256];
_snprintf(sa, sizeof(sa), "%s\0", sb);
//在格式化的時(shí)候要求在最后加一個(gè)0就行了嘛!

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2006-09-30 18:15 by 小明
TO 阿福:
你這樣是不行的。簡(jiǎn)化一下說明一下
char sa[2];
char sb[3]="aa";
_snprintf(sa, sizeof(sa), "%s\0", sb);

==> sa="aa",但是沒有'\0'結(jié)束

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2006-10-18 17:36 by Sim
TO 小明

你們用的都是什么系統(tǒng)啊
在linux下從來都是
char sa[2];
char sb[3]="aa";
snprintf(sa, sizeof(sa), "%s", sb);
這樣用的, 而且sa=>"a", 系統(tǒng)會(huì)自動(dòng)階段

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2007-06-03 01:19 by yecheng_110
linux和windows下是不同的
linux下的snprintf沒有這個(gè)問題
而windows下的_snprintf才有這個(gè)問題

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2009-05-03 12:33 by 創(chuàng)意產(chǎn)品
學(xué)習(xí)了,謝謝

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2010-01-05 09:57 by axwinter
xiexie!!!!!!!!

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2012-05-10 13:05 by wenson
阿福:"%s\0"這個(gè)常量盡管占用4個(gè)char位置,后兩個(gè)都是0,但是對(duì)snprintf含糊來說,遇到第一個(gè)結(jié)束符就認(rèn)為結(jié)束了。等價(jià)于"%s".

# re: 談?wù)剆nprintf  回復(fù)  更多評(píng)論   

2015-03-16 10:17 by 許余勝
windows下:
char sa[256]={0};
_snprintf(sa,sizeof(sa) - 1,"%s",sb);
或者
char sa[256]={0};
_snprintf(sa,sizeof(sa) -1 ,sb);
Linux下:
char sa[256]={0};
snprintf(sa,sizeof(sa),"%s",sb);
或者
char sa[256]={0};
snprintf(sa,sizeof(sa),sb);


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久成人免费网| 午夜宅男久久久| 国产精品jizz在线观看美国| 你懂的国产精品| 久久综合国产精品| 久久夜色精品一区| 欧美大片一区| 欧美日韩国产色综合一二三四| 欧美国产丝袜视频| 国产精品成人av性教育| 国产精品三级久久久久久电影| 国产精品日韩精品欧美精品| 黄色亚洲大片免费在线观看| 在线观看国产一区二区| 亚洲精品在线视频| 亚洲影院免费| 老司机免费视频一区二区三区| 欧美激情五月| 亚洲小说欧美另类婷婷| 久久久噜噜噜久噜久久| 欧美日韩精品欧美日韩精品一| 国产精品毛片va一区二区三区| 狠狠色狠狠色综合日日91app| 亚洲经典三级| 欧美在线综合| 99精品久久久| 久久只有精品| 国产日韩精品电影| 夜夜爽99久久国产综合精品女不卡| 欧美一区二区三区另类 | 狠狠色综合播放一区二区 | 久久久久久久综合| 亚洲黄色大片| 亚洲综合精品| 欧美精品一区二区三区一线天视频| 国产美女高潮久久白浆| 亚洲区欧美区| 老鸭窝亚洲一区二区三区| 99国产精品一区| 老司机精品视频网站| 国产丝袜一区二区三区| 99国产一区| 欧美阿v一级看视频| 亚洲欧美日韩国产一区| 欧美三日本三级少妇三2023| 亚洲国产女人aaa毛片在线| 久久久精品tv| 欧美一区二区三区久久精品茉莉花 | 久久青草久久| 欧美一区二区高清在线观看| 欧美日韩中文字幕在线| 亚洲日本成人女熟在线观看| 久久综合五月| 欧美制服丝袜第一页| 国产精品久久亚洲7777| 亚洲一区二区三区视频| 夜夜躁日日躁狠狠久久88av| 欧美国产日韩一区二区| 亚洲精美视频| 亚洲电影欧美电影有声小说| 久久精品国产精品亚洲综合| 国产午夜精品一区二区三区视频| 亚洲在线成人精品| 亚洲小少妇裸体bbw| 欧美色大人视频| 亚洲在线成人精品| 亚洲少妇诱惑| 国产精品麻豆成人av电影艾秋| 亚洲欧美另类在线观看| 亚洲无线观看| 国产视频欧美视频| 久久综合给合久久狠狠色| 久久久久久久综合| 91久久国产精品91久久性色| 91久久综合| 欧美特黄一区| 欧美一区二区三区的| 久久爱www.| 亚洲电影自拍| 亚洲剧情一区二区| 国产精品视频成人| 久久久精品性| 美女91精品| 亚洲一本大道在线| 亚洲高清成人| 99re这里只有精品6| 亚洲欧洲一区二区天堂久久 | 国产精品美女xx| 国产精品第一页第二页第三页| 亚洲一区免费观看| 性欧美videos另类喷潮| 影音先锋另类| 亚洲精品一区二区三区樱花| 国产精品av免费在线观看| 久久九九热re6这里有精品| 久久夜色精品亚洲噜噜国产mv | 亚洲专区一区二区三区| 国产一区日韩欧美| 亚洲人成在线观看一区二区| 国产精品久久福利| 蜜臀av性久久久久蜜臀aⅴ| 欧美不卡视频一区| 久久久精彩视频| 欧美精品二区三区四区免费看视频| 亚洲一区欧美激情| 久久免费一区| 午夜在线精品| 欧美激情一区二区三区在线视频 | 欧美三级日韩三级国产三级| 久久国产日本精品| 欧美日韩大片| 久久久综合网站| 欧美视频成人| 亚洲第一搞黄网站| 国产欧美日韩视频在线观看| 91久久综合亚洲鲁鲁五月天| 国产一区日韩二区欧美三区| 一区二区欧美日韩| 亚洲精品少妇| 久久综合九色综合欧美狠狠| 午夜欧美大尺度福利影院在线看| 免费成人高清视频| 久久久另类综合| 国产精品久久中文| 亚洲青色在线| 在线日韩中文字幕| 亚洲欧美日韩综合| 亚洲欧美成人一区二区三区| 欧美成人嫩草网站| 久久在线视频| 国产亚洲欧洲一区高清在线观看 | 玖玖玖免费嫩草在线影院一区| 久久国产精品亚洲va麻豆| 国产精品高潮久久| 亚洲最新合集| 亚洲色图自拍| 欧美人与性动交a欧美精品| 欧美成人免费一级人片100| 午夜精品一区二区三区电影天堂 | 亚洲电影av| 亚洲第一黄色网| 久久久五月天| 欧美.www| 91久久国产综合久久91精品网站| 欧美一级久久久| 久久精品一区二区三区不卡牛牛| 国产裸体写真av一区二区| 亚洲综合色婷婷| 亚洲欧美综合| 国产在线不卡| 久久免费偷拍视频| 亚洲国产成人在线视频| 亚洲国产日韩美| 牛牛影视久久网| 亚洲精品四区| 性欧美长视频| 黑丝一区二区| 久久久国产成人精品| 欧美国产日本韩| 一区二区三区www| 久久久久久久久久久成人| 久久亚洲高清| 9久re热视频在线精品| 国产精品ⅴa在线观看h| 亚洲欧美日韩一区二区三区在线| 久久精品国产亚洲高清剧情介绍| 好吊成人免视频| 欧美成人午夜影院| 一区二区三区.www| 久久久久国产精品厨房| 亚洲激情视频网站| 国产精品毛片| 毛片一区二区| 亚洲一区二区三区四区五区午夜| 久久久水蜜桃| 99在线精品观看| 国产精品自在在线| 美女网站久久| 亚洲欧美日韩国产成人| 欧美顶级大胆免费视频| 亚洲视频狠狠| 黄页网站一区| 欧美午夜在线一二页| 欧美专区在线播放| 亚洲精品资源美女情侣酒店| 久久精品国产免费观看| 99re亚洲国产精品| 伊人狠狠色丁香综合尤物| 欧美日韩亚洲精品内裤| 久久久五月婷婷| 亚洲午夜精品17c| 欧美福利小视频| 久久都是精品| 亚洲一级片在线观看| 国产精品你懂的在线| 欧美成人亚洲成人日韩成人| 欧美一区=区| 在线亚洲一区观看| 亚洲国产一二三| 亚洲自拍偷拍福利|