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

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

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

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

2、

  2.1、参考网址:

  2.2、测试代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. #include <io.h>
  6.  
  7. #include <map>
  8. #include <math.h>
  9. #include <list>
  10. #include <string>
  11. #include <sstream>
  12. #include <algorithm>// std::find(...)
  13. #include <vector>
  14. using namespace std;
  15.  
  16. //#include "stdafx.h"
  17. #include <iostream>
  18. #include <windows.h>
  19. #include <math.h>
  20. using namespace std;
  21.  
  22. void main()
  23. {
  24. // ZC: baidu搜索"STARTUPINFO hStdOutput 重定向"
  25. // ZC: https://blog.csdn.net/cqupt_chen/article/details/8364259

  26.   // ZC: 部分(1)
  27. SECURITY_ATTRIBUTES sa= {sizeof(sa),NULL,TRUE};;
  28. sa.bInheritHandle = TRUE;
  29.  
  30. //FILE* fp = fopen("D:\\G_DR_2018\\_G2SVG_Console_VS08\\_G2SVG_Console_VS08\\LOG\\zz.txt", "w+");
  31. HANDLE houtputfile = CreateFileA("D:\\G_DR_2018\\_G2SVG_Console_VS08\\_G2SVG_Console_VS08\\LOG\\zz.txt",
  32. GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, &sa, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

  33.   // ZC: 部分(2)
  34. //#define EXECDOSCMD "dir c:" //可以换成你的命令
  35. #define EXECDOSCMD "_G2SVG_Console_VS08.exe" //可以换成你的命令
  36.  
  37. char command[]; //长达1K的命令行,够用了吧
  38. strcpy(command,"Cmd.exe /C ");
  39. //strcpy(command,"Cmd.exe ");
  40. strcat(command,EXECDOSCMD);

  41.   // ZC: 部分(3)
  42. STARTUPINFOA si;
  43. PROCESS_INFORMATION pi;
  44. si.cb = sizeof(STARTUPINFO);
  45. GetStartupInfoA(&si);
  46. //si.hStdError = fp; //把创建进程的标准错误输出重定向到管道输入
  47. //si.hStdOutput = fp; //把创建进程的标准输出重定向到管道输入
  48. si.hStdError = houtputfile;
  49. si.hStdOutput = houtputfile;
  50. si.wShowWindow = SW_HIDE;
  51. si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
  52. //关键步骤,CreateProcess函数参数意义请查阅MSDN
  53. if (!CreateProcessA(NULL, command, NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
  54. {
  55. printf("err01\n");
  56. //CloseHandle(hWrite);
  57. return;
  58. }
  59. //CloseHandle(hWrite);
  60.  
  61. WaitForSingleObject(pi.hProcess, * );
  62.  
  63. system("pause");
  64.  
  65. }

3、

4、

5、

VC.重定向标准输出到文件(父进程方式)的更多相关文章

  1. Linux 标准输入输出、错误输出、重定向标准输出

    再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >& ...

  2. linux: c语言 关闭标准输出STDOUT_FILENO对父子进程的影响

    简介标准 I/O 库(stdio)及其头文件 stdio.h 为底层 I/O 系统调用提供了一个通用的接口.这个库现在已经成为 ANSI 标准 C 的一部分.标准 I/O 库提供了许多复杂的函数用于格 ...

  3. Linux下重要日志文件及查看方式

    http://os.51cto.com/art/201108/282184_all.htm   1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的 ...

  4. fork出的子进程和父进程的继承关系【转载】

    [原文地址]http://blog.163.com/dengjingniurou@126/blog/static/53989196200962924412524/ fork出的子进程和父进程的继承关系 ...

  5. Python之路(第三十七篇)并发编程:进程、multiprocess模块、创建进程方式、join()、守护进程

    一.在python程序中的进程操作 之前已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序 ...

  6. 获取进程ID,父进程ID,进程完整路径

    准备写一个进程管理的功能模块,今天下午先写了扫描获取本机各个进程路径,获取各个进程映像名称,进程完整路径. 要获取进程信息,第一步想到的就是提权,提权代码用过多次了,今天也小结了一下(http://w ...

  7. 文件的概念以及VC里的一些文件操作API简介

    文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文 ...

  8. wait & waitpid 以及子进程传给父进程的信号分析

    wait() 和 waitpid() wait() 系统调用挂起调用进程的执行直到有一个孩子终止.调用 wait(&status) 等价于: waitpid(-1, &status, ...

  9. 用 set follow-fork-mode child即可。这是一个 gdb 命令,其目的是告诉 gdb 在目标应用调用fork之后接着调试子进程而不是父进程,因为在 Linux 中fork系统调用成功会返回两次,一次在父进程,一次在子进程

    GDB的那些奇淫技巧 evilpan 收录于 Security  2020-09-13  约 5433 字   预计阅读 11 分钟  709 次阅读  gdb也用了好几年了,虽然称不上骨灰级玩家,但 ...

随机推荐

  1. nginx配置https访问

    一.准备 环境:centos6.8 nginx:1.13.6 二.开始       首先安装依赖包: yum install -y gcc gcc-c++ autoconf automake make ...

  2. java应用,直接请求没问题,通过nginx跳转状态吗400

    今天配置金融的测试环境,直接调用java应用返回状态200,通通过nginx跳转,会返回400,真是一头雾水..... 参考文档: https://www.cnblogs.com/yanghj010/ ...

  3. 印刷行业合版BOM全阶维护示例

    先看看基本界面: 在上图中,左侧为产品的整个树形图 目前产品有4种状态: 1.普通产品,颜色为黑色 2.需要拼版的产品,颜色为绿色 3.拼版的产品(例如印刷件),基准件为红色 4.拼版的产品,非基准件 ...

  4. Laravel-2

    ● php发邮件 参考:https://blog.csdn.net/sinat_37390744/article/details/54667794 ● ajax提交表单时防止csrf攻击 1. 在网页 ...

  5. LCA || BZOJ 1602: [Usaco2008 Oct]牧场行走 || Luogu P2912 [USACO08OCT]牧场散步Pasture Walking

    题面:[USACO08OCT]牧场散步Pasture Walking 题解:LCA模版题 代码: #include<cstdio> #include<cstring> #inc ...

  6. Fiddler (进阶)内置命令与断点

    Fiddler 内置命令与断点 命令 对应请求项 介绍 示例 ? All 问号后边跟一个字符串,可以匹配出包含这个字符串的请求 ?google > Body 大于号后面跟一个数字,可以匹配出请求 ...

  7. Windows10远程桌面Ubuntu16.04

    一.Ubuntu16.04端软件安装(管理员权限) 1.安装xrdp sudo apt-get install xrdp 2.安装vnc4server sudo apt-get install vnc ...

  8. 从光盘安装ubuntu系统

    参考博客: https://www.jianshu.com/p/7929e4911206

  9. Navicat 用ssh通道连接时总是报错 (报错信息:SSH:expected key exchange group packet form serve

    转:https://blog.csdn.net/qq_27463323/article/details/76830731 之前下了一个Navicat 11.0 版本 用ssh通道连接时总是报错 (报错 ...

  10. PowerBI新功能: PowerBI多报表共享一个数据集

    在PowerBI里面建模,来来回回摸了一遍之后,肯定不想在另外一个报表的时候重复一次建模--这样不利于复用和维护. 四月份的更新版提供了一个预览功能(如下),可以让多报表(pbix)共享同一个数据集. ...