defensive programming 工业标准
2017-09-10 21:30
218 查看
工业标准
main(){
char s[10];
strcpy(s,"abc");
ret=addExt(s,10);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen("dat")>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strcat(s,".dat");
return SUCCESS;
}
------------------------------------------------------------------------------------------------------------------------------------------------
main(){
char s[10];
strcpy(s,"abc");
ret=addExt(s,10);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen("dat")>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strcat(s,".dat");
return SUCCESS;
}
-------------------------------------------------------------------------------------------------------------------------------------------
#define LEN 10
main(){
char s[LEN];
strcpy(s,"abc");
ret=addExt(s,LEN);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define EXT ".dat"
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen(EXT)>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strcat(s,EXT);
return SUCCESS;
}
-----------------------------------------------------------------------------------------------------------------
#define LEN 10
main(){
char s[LEN];
strncpy(s,"abc",
LEN-1);
s[LEN-1]='\0';
ret=addExt(s,LEN);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define EXT ".dat"
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen(EXT)>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strncat(s,EXT,
nLen-strlen(s)-1);
s[nLen-1]='\0';
return SUCCESS;
}
--------------------------------------------------------------------------------------------------------------
#define SUCCESS 0
#define ERR_BASE 0
#define ERR_PARAM ERR_BASE-1
#define ERR_BUF_SIZE ERR_BASE-2
main(){
char s[10];
strcpy(s,"abc");
ret=addExt(s,10);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen("dat")>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strcat(s,".dat");
return SUCCESS;
}
------------------------------------------------------------------------------------------------------------------------------------------------
main(){
char s[10];
strcpy(s,"abc");
ret=addExt(s,10);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen("dat")>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strcat(s,".dat");
return SUCCESS;
}
-------------------------------------------------------------------------------------------------------------------------------------------
#define LEN 10
main(){
char s[LEN];
strcpy(s,"abc");
ret=addExt(s,LEN);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define EXT ".dat"
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen(EXT)>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strcat(s,EXT);
return SUCCESS;
}
-----------------------------------------------------------------------------------------------------------------
#define LEN 10
main(){
char s[LEN];
strncpy(s,"abc",
LEN-1);
s[LEN-1]='\0';
ret=addExt(s,LEN);
if(ret!=SUCCESS)
//Error Handling
else
printf("%s",s);
}
#define EXT ".dat"
#define SUCCESS 0
#define ERR_PARAM -1
#define ERR_BUF_SIZE -2
void addExt(char *s){
if(s==NULL)
return ER1R_PARAM;
if(strlen(s)+strlen(EXT)>=nLen) //avoid buffer overflow
return ERR_BUF_SIZE;
strncat(s,EXT,
nLen-strlen(s)-1);
s[nLen-1]='\0';
return SUCCESS;
}
--------------------------------------------------------------------------------------------------------------
#define SUCCESS 0
#define ERR_BASE 0
#define ERR_PARAM ERR_BASE-1
#define ERR_BUF_SIZE ERR_BASE-2
相关文章推荐
- 《MISRA-C 2004 工业标准的C编程规范》-初始化规则
- 工业标准的矢量图像格式----SVG
- 4-20mA 0-5V工业标准信号回望笔录
- MISRA--作为工业标准的C编程规范
- MISRA--作为工业标准的C编程规范
- 工业标准接口OPC Server
- Eclipse Modeling Projects覆盖的工业标准
- 工业标准的矢量图像格式----SVG
- WIA-PA标准:中国工业无线技术新突破
- 标准的PID处理例程 (转载的一个工业控制中常用算法)
- OLI.System.2010 2CD工业水溶液电解质体系预测的标准
- 详解OPC协议-工业控制和自动化领域的接口标准
- Atitit 最近十年来until2018软件开发领域的趋势 艾龙总结 attilax大盘点总结历史与趋势 1. Keyword sec title 2 2. 语言本身: 2 2.1. 工业标准 2
- MISRA--作为工业标准的C编程规范
- HTML5有望成为真正的工业标准
- MISRA--作为工业标准的C编程规范
- 工业无线网络标准初步了解
- 双绞线的标准工业接法
- 软件开发日本工业标准
- 工业标准的品质也已成为开源世界中的范例之一