linux日志打印规则,Linux 打印简单日志(一)

简单日志输出:

#include#include#include

void write(char* filename,char*szStr){

FILE*fp;

fp= fopen(filename,"at+");if(fp !=NULL){

fwrite(szStr,256,1,fp); //fclose(fp);

fp=NULL;

}

}int main(int argc, char**argv){inti;for(i = 0; i < argc; i++){

write("log.txt",argv[i]);

}return 0;

}

Attention:

fwrite(szStr,256,1,fp); // fwrite(szStr,strlen(szStr),1,fp);

日志会出现乱码的情况

fopen()函数:

函数声明:include

函数原型:FILE *fopen(const char *filename, const char *mode);

函数参数:filename:log文件名  mode:文件访问模式

函数功能:按照给的的模式mode打开filename所指向的文件

函数返回值:文件顺利打开后,指向改流的文件指针就会被返回。如果文件打开失败,就返回NULL,并把错误代码存储在error中。

参数说明:

mode有几种形态的字符串:

r

以只读的方式打开文件,文件必须存在

r+

以读/写的方式打开文件,文件必须存在

rb+

以读/写的方式打开一个二进制文件,只允许读写数据

rt+

以读/写方式打开一个文本文件,允许读和写

w

打开只读文件,若文件存在则文件长度清零,即文件内容会消失;若文件不存在,则创建该文件

a

以附加的方式打开只写文件,若文件不存在,则创建该文件,若文件存在,将写入的数据加在文件的末尾

a+

以附加的方式打开读/写文件,若文件不存在,则创建该文件,若文件存在,将写入的数据加在文件的末尾

wb

以只写的方式打开或新建一个二进制文件,只允许写数据

wb+

以只写的方式打开或新建一个二进制文件,允许读和写

wt+

以读/写的方式打开一个文本文件,允许读和写

at+

以读/写方式打开一个文本文件,允许读或在文本末追加数据

ab+

以读/写的方式打开一个二进制文件,允许读或者在文件末尾追加数据

补充:

1.以x结尾的模式为独占模式,文件已存在或无法创建(一般为路径文件问题)导致fopen打开失败。文件以操作系统支持的独占模式打开。

2.上述的形态字符串都可以再加一个b字符,如rb/w+b/ab+等,加入b字符来告诉函数库以二进制打开文件。如果没有b,则默认加t,即以文本模式打开文件。

3.二进制和文本模式区别:

在windows系统中,文本模式下:文件以“\n\r”代表换行。若以文本模式打开文件,并用fputs等函数写入换行符“\n”时,函数会自动在“\n”前面加“\r”。即实际写入文件的时“\r\n”。

在unix/linux系统中,文本模式下“\n”代表换行,linux系统下文本和二进制模式下无区别。

总结:

是否是二进制打开,加b

读写方式:只读、只写、读写、追加只写、追加读写。

读文件是否必须存在,以及存在时是清空还是追加不同的响应。

fwrite()函数:

函数原型:size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

函数参数:

ptr:      指向要被写入的元素数组的指针。

size:    要被写入的每个元素的大小,单位字节

nmemb:     元素的个数,每个元素大小为size字节

stream:      这是指向FILE对象的指针,该FILE对象指定了一个输出流。

函数功能:把ptr所指向的数组中的数据写入到指定的stream中。

返回值:如果成功,返回一个size_t的对象,表示元素的总数,该对象是一个整型数据类型。如果该数字与nmemb参数不同,则会出现一个错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值