当前位置: 技术问答>linux和unix
以“a+”方式写conf文件时会多出很多'@'
来源: 互联网 发布时间:2016-11-27
本文导语: int write_file_add(char *filename ,char *buf, int nnum) { FILE *fp=0; int ret=0; do { fp=fopen(filename,"a+"); if(!fp) { ret=OPENFILE_ERROR; break; } if(fwrite(buf,1,nnum,fp)!=nnum) { ret=WRITECONFIG_ERROR; break; } }while(0); if(fp) fclose(fp); return ...
int write_file_add(char *filename ,char *buf, int nnum)
{
FILE *fp=0;
int ret=0;
do
{
fp=fopen(filename,"a+");
if(!fp)
{
ret=OPENFILE_ERROR;
break;
}
if(fwrite(buf,1,nnum,fp)!=nnum)
{
ret=WRITECONFIG_ERROR;
break;
}
}while(0);
if(fp)
fclose(fp);
return ret;
}
上面是我的方法,buf代表要写的内容,nnum是写的字节数,当我写*.config文件时会多出10行左右的@@@@@@,头疼,难道我哪里没注意到,达人帮我看看。感谢。
|
buf里面本来就有这些字符吧
你这样试试呢
if(fwrite(buf,1,strlen(buf),fp)!=nnum)
你这样试试呢
if(fwrite(buf,1,strlen(buf),fp)!=nnum)
|
如果使用二进制形式读取,尽量使用"ab+" 方式打开