在linux系统中将自己程序的日志输出到自己定义的文件
2012-11-12 13:27
495 查看
很简单, 打开文件/写入文件. bash脚本: echo "message" >> /path/to/yourlogfile c: 这个就不用说了吧, fopen("/path/to/yourlogfile", "a"); 然后调用fwrite 如果希望printf/fprintf(stderr,等标准输出/标准错误输出直接输出到日志, 用dup2: #include <stdio.h> #include <unistd.h> int main() { FILE *fp = fopen("log.txt", "a"); if(fp){ int no = fileno(fp); dup2(no, 1); dup2(no, 2); printf("stdout log\n"); fprintf(stderr, "stderr log\n"); fclose(fp); } return 0; }
在C和C++中把标准输出重定向到指定文件。
2010-08-27 13:54:38| 分类: C++语言 | 标签:标准输出 文件 memcpy cout endl |字号 订阅问题内容:在C和C++中把标准输出重定向到指定文件。C++的实现 #include <ios> #include <iostream> #include <fstream> //若使用包含.h文件方式则编译报错 using namespace std; int main() { ofstream ofs("e:\\a.txt"); streambuf *osb = cout.rdbuf(ofs.rdbuf()); cout << "to file" << endl; cout.rdbuf(osb); cout << "to term" << endl; return 0; } C实现1#include <stdio.h> #include <string.h> void main() { FILE old_stdout; FILE *fp = fopen("e:\\a.txt", "w"); memcpy(&old_stdout, &_iob[1], sizeof(FILE)); memcpy(&_iob[1], fp, sizeof(FILE)); /*call any functions..*/ printf("to file"); /**/ /*把缓冲刷新到文件*/ fflush(stdout); memcpy(&_iob[1], &old_stdout, sizeof(FILE)); printf("to term"); fclose(fp); } C实现2:: #include<iostream>#include<fstream>using namespace std; int main(){ freopen("intput.txt","r",stdin); freopen("output.txt","w",stdout); double a; cin>>a; cout<<"Jackie"<<endl; return 0;}
相关文章推荐
- linux 程序运行到后台,控制台输出到文件,并能日志切割的方法
- 我是这样学习Linux下C语言编程的-把程序输出信息加到系统日志里去
- Linux(9)后台运行python程序并输出到日志文件
- 我是这样学习Linux下C语言编程的-把程序输出信息加到系统日志里去
- 我是这样学习Linux下C语言编程的-把程序输出信息加到系统日志里去
- Linux系统中如何添加自己的库文件路径
- 在EBS R12.0.6系统内查看用户的输出请求文件方法(不是自己提交的请求)
- log4j在程序中指定输出日志文件名
- linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库 .
- Log4j 输出的日志中时间比系统时间少了8小时的解决方法,log4j日志文件重复输出
- linux系统之日志文件系统详解
- 程序日志中自动记录所在函数名、文件名、行号,并定向输出到一个日志文件
- outputdebugstring 调试程序 同时也可以输出调试日志文件
- 自己编写程序批量合并多个“规范定义电子名片(vCard)”文件
- Windows做共享存储mount到Linux系统使用ftp工具上传与使用java程序上传文件
- Linux系统启动引导程序配置文件解析
- 程序中输出的各种日志信息类并写入日志文件
- Python中将打印输出导向日志文件
- C#中将标准输出重定向到日志文件
- Linux系统启动自己的图形界面程序