您的位置:首页 > Web前端

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: