- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <fcntl.h>
- #include <signal.h>
- #include <errno.h>
- /*
- 入参说明:
- name:指定输出到指定的文件名
- buf:要输出的调试信息
- 函数实现功能:将要输出的调试信息"buf"追加写入到文件"name"中。
-
- */
- int ez_printf_log(const char* name,char *buf)
- {
- int ret,fp;
- int bytes_write=0,write_size=0;
- //struct stat stat_f;
- void *ptr=NULL;
- write_size = strlen(buf);
- if(NULL==name || NULL==buf || write_size<=0)
- return 0;
- fp = open(name, O_WRONLY | O_CREAT | O_APPEND, 644);
- if(fp < 0)
- {
- //fprintf(stderr,"Open %s Error:%s\n",name,strerror(errno));
- return 0;
- }
- ptr=buf;
-
- while(bytes_write=write(fp,ptr,write_size))
- {
- if((bytes_write==-1)&&(errno!=EINTR))
- {
- ret = 0;
- break;
- }
- else if(bytes_write==write_size)
- {
- ret = 1;
- break;
- }
- else if(bytes_write>0)
- {
- ptr+=bytes_write;
- write_size-=bytes_write;
- }
- }
-
- return ret;
- }
应用:
1、直接打印文本信息:("\n"是在文档中回车换行)
ez_print_debug("/var/debug.log","My debug infor\n");
2、有变量的打印:
char bugbuf[1024]={0};
sprintf(bugbuf,"%s %d\n",buf,i);//buf,i要输出的参数
ez_print_debug("/var/debug.log",bugbuf);
也可以采用syslog来输出调试信息。
阅读(2561) | 评论(0) | 转发(0) |