实时得到程序的标准输出,重定向输入输出。。。
来源:互联网 发布:淘宝好评链接 编辑:程序博客网 时间:2024/05/17 18:27
示例程序:
/*
Name: 3745739.c
Copyright: iDLER FANG
Author: iDLER FANG
Date: 22-01-05 22:56
Description: Sample of child process I/O redirect.
*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define BUFFSIZE 4096
int main(int argc, char *argv[])
{
const char* lpszCmd = "test.exe";
/* 以下为创建匿名管道所需的参数 */
HANDLE hReadPipe, /* 读管道 */
hWritePipe; /* 写管道 */
SECURITY_ATTRIBUTES sec_attr; /* 安全属性 */
/* 以下为创建子进程需要的参数 */
STARTUPINFO start_info;
PROCESS_INFORMATION proc_info;
char buff[BUFFSIZE]; /* 缓冲区 */
DWORD bytesRead;
const int interval = 100; /* 更新间隔 */
/* 创建匿名管道 */
sec_attr.bInheritHandle = TRUE; /* 保证管道能够被子进程继承 */
sec_attr.nLength = sizeof(SECURITY_ATTRIBUTES);
sec_attr.lpSecurityDescriptor = NULL; /* 使用系统默认的安全描述符 */
if (CreatePipe(&hReadPipe, &hWritePipe, &sec_attr, 0) == 0) {
fprintf(stderr, "Anonymous pipe creation failed!/n");
return -1;
}
/* 创建子进程 */
start_info.cb = sizeof(STARTUPINFO);
GetStartupInfo(&start_info);
start_info.hStdOutput = hWritePipe; /* 重定向stdout */
start_info.hStdError = hWritePipe; /* 重定向stderr */
start_info.wShowWindow = SW_HIDE; /* 当然,不显示窗口 */
start_info.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; /* 使以上参数生效 */
if (CreateProcess(NULL, TEXT(lpszCmd), NULL, NULL, TRUE, NULL, NULL, NULL, &start_info, &proc_info) == 0) {
fprintf(stderr, "Child process creation failed!/n");
return -1;
}
CloseHandle(hWritePipe); /* 当前进程并不需要这个写入端 */
/* 从hReadPipe读入 */
for(;;) {
if (ReadFile(hReadPipe, buff, BUFFSIZE - 1, &bytesRead, NULL) == NULL) break;
printf("%s", buff);
Sleep(interval);
}
system("PAUSE");
return 0;
}
test.c
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main(int argc, char *argv[])
{
const int times = 10;
const int interval = 1000;
int i;
for (i = 0; i < times; i++) {
fprintf(stdout, "i = %d/n", i);
fflush(stdout);
Sleep(interval);
}
return 0;
}
- 实时得到程序的标准输出,重定向输入输出。。。
- 实时得到程序的标准输出
- 控制台程序的标准输入输出的重定向
- 控制台程序的标准输入输出的重定向
- 标准输入输出、错误输出、重定向标准输出
- 标准输入输出、错误输出、重定向标准输出
- 标准输入输出、错误输出、重定向标准输出
- 标准输入输出、错误输出、重定向标准输出
- 标准输入输出重定向
- 标准输入输出重定向
- linux的标准输入输出和重定向
- android中如何重定向程序的标准输出
- qt捕获cmd控制台标准输出(输入输出重定向)
- linux 标准输入输出重定向
- java标准输入输出重定向
- cgi标准输入输出重定向
- C++标准输入输出重定向
- java重定向标准输入输出
- [IBM 多伦多实验室]DB2 命令行处理器(CLP)中的常用命令
- 30行代码的政府网站
- JAVA学习提高之---- JBOSS下配置数据源
- PDA判断网络连接
- 64位机执行vbs
- 实时得到程序的标准输出,重定向输入输出。。。
- IIS6下无法正常运行ASP程序
- 迁移数据库的文件到不同路径
- 接受ZDNET的采访,还给网友准备免费赠4本亲笔签名的《走出软件作坊》
- DOMDocument-&gt;importNode()方法
- TCP/IP基础:教你Windows DNS协议
- 获取网页内容的代码(C#)
- 通过HOOK来注入DLL的一点心得!!!!!!
- js判断时间格式是否有效