请教!如何将应用程序日志输出到文件? 环境:ARM开发板应用程序在开发板上长期运行,如何把程序中的printf信息自动保存到文件?有哪些方法?因为是ARM板,最好占用资源少点。或者有相关的文章或书也可以,我去找来研究,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 printf 输出重定向就行吧, 应用> xxx.txt 可以试试用zlog,交叉编译参考http://www.itgather.com/2018/04/03/zlog%E5%9C%A8openwrt%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%9A%84%E7%A7%BB%E6%A4%8D/ fwrite fprintf都可以实现吧两个函数都是对文件流的操作,都能实现功能,但是有所区别;fwrite是将数据不经转换直接以二进制的形式写入文件,而fprintf是将数据转换为字符后再写入文件。你前面说的啥覆盖,代码实现啥的,我没懂你的需求,请说明确。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>/*程序思路:*/int main(){ int writen_num,read_num; FILE *fp; char buffer_2[100]={0}; int a=123; fp=fopen("/root/eclipse-workspace/p2/Debug/f-test","r+"); fprintf(fp,"test fprintf fprintf%d\n",a); fclose(fp); fp=fopen("/root/eclipse-workspace/p2/Debug/f-test","r"); read_num=fread(buffer_2,sizeof(char),19,fp); if (read_num==-1) { perror("read fail ="); } else { printf("%d byte were read\n",read_num); } for(int i=0;i<19;i++) { printf("%c",buffer_2[i]); } printf("\n"); fclose(fp);} 安装fastdfs后没有可执行命令 ubuntu安装交叉编译工具出现问题 centos7安装iredmail 基于resiprocate的sip服务器 求助!!!!win10安装VMware后没有虚拟网卡 ros 安装初始化环境变量问题 关于tunnel的建立,问什么添加不了路由呢 shell参数的问题 Linux中dd命令烧写xxx.bin镜像到SD卡失败 linux ubuntu没有WiFi适配器求助 linux系统centos7.2 安装nginx出这个问题 说是yum源的问题 求解 关于驱动的问题
两个函数都是对文件流的操作,都能实现功能,但是有所区别;
fwrite是将数据不经转换直接以二进制的形式写入文件,而fprintf是将数据转换为字符后再写入文件。你前面说的啥覆盖,代码实现啥的,我没懂你的需求,请说明确。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
/*
程序思路:
*/
int main()
{
int writen_num,read_num;
FILE *fp;
char buffer_2[100]={0};
int a=123; fp=fopen("/root/eclipse-workspace/p2/Debug/f-test","r+");
fprintf(fp,"test fprintf fprintf%d\n",a); fclose(fp);
fp=fopen("/root/eclipse-workspace/p2/Debug/f-test","r");
read_num=fread(buffer_2,sizeof(char),19,fp);
if (read_num==-1)
{
perror("read fail =");
}
else
{
printf("%d byte were read\n",read_num);
}
for(int i=0;i<19;i++)
{
printf("%c",buffer_2[i]);
}
printf("\n");
fclose(fp);
}