VC.重定向标准输出到文件(父进程方式)

1、libxml2 使用过程中,有时 libxml2里面会报一些错误信息,在 控制台的程序中 这些信息看起来比较乱,不易观察,我想将这些信息重定向到 文件中

 1.1、本进程内:试着 将标准输出,标准错误等 重定向,但是 我的代码里面的标准输出和标准错误 都能重定向,但是libxml2中的信息 却重定向不成功... 试了好些方法都不行...

  忘了具体 使用了哪些方式了....

 1.2、父进程:通过父进程来重定向子进程的 标准输出和标准错误 到文件 --> 成功了 而且 不麻烦(这里就是采用的这个方式)

2、

  2.1、参考网址:

  2.2、测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#include <io.h>

#include <map>
#include <math.h>
#include <list>
#include <string>
#include <sstream>
#include <algorithm>// std::find(...)
#include <vector>
using namespace std;

//#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;


void main()
{
// ZC: baidu搜索"STARTUPINFO hStdOutput 重定向"
// ZC: https://blog.csdn.net/cqupt_chen/article/details/8364259

  // ZC: 部分(1) SECURITY_ATTRIBUTES sa= {sizeof(sa),NULL,TRUE};; sa.bInheritHandle = TRUE; //FILE* fp = fopen("D:\\G_DR_2018\\_G2SVG_Console_VS08\\_G2SVG_Console_VS08\\LOG\\zz.txt", "w+"); HANDLE houtputfile = CreateFileA("D:\\G_DR_2018\\_G2SVG_Console_VS08\\_G2SVG_Console_VS08\\LOG\\zz.txt", GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, &sa, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  // ZC: 部分(2)
//#define EXECDOSCMD "dir c:" //可以换成你的命令 #define EXECDOSCMD "_G2SVG_Console_VS08.exe" //可以换成你的命令 char command[1024]; //长达1K的命令行,够用了吧 strcpy(command,"Cmd.exe /C "); //strcpy(command,"Cmd.exe "); strcat(command,EXECDOSCMD);
  // ZC: 部分(3) STARTUPINFOA si; PROCESS_INFORMATION pi; si.cb
= sizeof(STARTUPINFO); GetStartupInfoA(&si); //si.hStdError = fp; //把创建进程的标准错误输出重定向到管道输入 //si.hStdOutput = fp; //把创建进程的标准输出重定向到管道输入 si.hStdError = houtputfile; si.hStdOutput = houtputfile; si.wShowWindow = SW_HIDE; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; //关键步骤,CreateProcess函数参数意义请查阅MSDN if (!CreateProcessA(NULL, command, NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) { printf("err01\n"); //CloseHandle(hWrite); return; } //CloseHandle(hWrite); WaitForSingleObject(pi.hProcess, 120 * 1000); system("pause"); }

 

3、

4、

5、

 

posted @ 2018-12-06 10:03  CppSkill  阅读(898)  评论(0编辑  收藏  举报