C 庫函式 - strlcpy()
阿新 • • 發佈:2020-10-15
-
strlcpy
- 中文名
- strlcpy
- 外文名
- strlcpy
- 功能
- 字串複製
- 標頭檔案
- string.h
- 返回值型別
- size_t
目錄
- 1C語言函式
- 2功能說明
- 3與strncpy區別
C語言函式
函式原型宣告:size_t strlcpy(char *dest, const char *src, size_t size) 標頭檔案引用:#include <string.h> 功能: 在已知dest緩衝區大小並不會造成功能說明
strlcpy函式建立的目的主要是針對strcpy函式緩衝區溢位的問題,因為一旦strcpy呼叫中src的字串長度超過了dst的緩衝區大小,就會造成緩衝區安全漏洞問題,這是一類常見也嚴重的電腦保安漏洞。當然strcat函式也有安全版本的strlcat函式。與strncpy區別
類似的函式還有strncpy,但是strlcpy常常是更加安全地選擇,因為strlcpy在複製之後dst字串一定會以'\0'字元結尾[2]1 2 3 4 5 6 7 8 9 10 |
#include<string.h>
#include<stdio.h>
int main()
{
char buf[5];
char src[10]= "12345678" ;
strlcpy(buf,src, sizeof (buf));
printf ( "%s\n" ,buf); //輸出1234
return 0;
}
|
1 2 3 4 5 6 7 8 9 10 |
#include<string.h> #include<stdio.h>
int main()
{
char buf[5];
char src[10]= "12345678" ;
strncpy (buf,src, sizeof (buf));
printf ( "%s\n" ,buf);
return 0;
}
|