利用管道实现控制台程序输入输出的重定向
来源:互联网 发布:域名交易案例 编辑:程序博客网 时间:2024/05/01 07:54
在vc++6.0 创建控制台程序,编译测试通过。支持UniCode
控制台测试程序(and.exe)
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
int x,y;
// while(1)
{
printf("Input First Num:/r/n");
scanf( "%d", &x );
printf("Input Second Num:/r/n");
scanf( "%d", &y );
printf("%d + %d = %d/r/n",x,y,x+y);
}
return 0;
}
实现控制台输入输出重转向的控制程序(或者GUI)
#include "stdafx.h"
#include "Windows.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
SECURITY_ATTRIBUTES sa,sa2;
HANDLE hInputRead,hInputWrite;
HANDLE hOutputRead,hOutputWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hOutputRead,&hOutputWrite,&sa,0))
{
printf("Error On CreatePipe1");
return 1;
}
sa2.nLength = sizeof(SECURITY_ATTRIBUTES);
sa2.lpSecurityDescriptor = NULL;
sa2.bInheritHandle = TRUE;
if (!CreatePipe(&hInputRead,&hInputWrite,&sa2,0))
{
printf("Error On CreatePipe2");
return 1;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hOutputWrite;
si.hStdOutput = hOutputWrite;
si.hStdInput = hInputRead;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
TCHAR cmd_line[100];
lstrcpy(cmd_line,TEXT("d://and.exe"));
DWORD dwWritten;
if (!CreateProcess(NULL,cmd_line,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
#ifdef UNICODE
wprintf(TEXT("Error On CreateProcess"));
#else
printf(TEXT("Error On CreateProcess"));
#endif
return 1;
}
CloseHandle(hInputRead);
CloseHandle(hOutputWrite);
char szInPut[]= ("12/r/n 34/r/n");// 输入
WriteFile(hInputWrite, szInPut, strlen(szInPut), &dwWritten, NULL);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if(ReadFile(hOutputRead,buffer,4095,&bytesRead,NULL) == NULL)
{
break;
}
printf(buffer);// 输出
Sleep(500);
}
CloseHandle(hInputWrite);
CloseHandle(hOutputRead);
return 0;
}
- 利用管道实现控制台程序输入输出的重定向
- 利用管道实现控制台程序输入输出的重定向
- Delphi中利用管道重定向实现对控制台(Console)程序的操作
- 巧用管道实现程序的输入输出重定向
- 重定向控制台程序的输入输出
- 控制台程序的管道重定向
- 利用管道重定向标准输入输出流
- 控制台程序的标准输入输出的重定向
- 控制台程序的标准输入输出的重定向
- 重定向子进程控制台程序的输入输出
- 启动控制台程序,重定向输入输出流
- 控制台输入输出重定向
- 【学习Linux】输入输出的重定向,管道
- winfrom - 重定向控制台的输入输出
- 管道操作 | 输入输出重定向
- C# 程序通过匿名管道控制exe控制台程序 输入输出流重定向 WPF向控制台程序传递参数出现“句柄无效”问题
- 利用管道技术实现将printf重定向到MFC对话框程序的编辑框控件中去
- shell的特性之十:输入输出重定向和管道
- 进程和线程的区别
- tmail.exe 及其他常用命令参数
- 乱乱乱头绪
- 计算阶乘n!末尾所含0的个数
- 绝对不能做女友或老婆的十类女人
- 利用管道实现控制台程序输入输出的重定向
- get_magic_quotes_gpc 用法
- php反射函数
- jsp 自定义标签
- current automation framework summary
- 回忆起学生时代,感慨万千……
- 项目管理利器 - mingle 【机器低于2G的兄弟们就算了】
- 看雪资料
- Ext.grid.GridPanel处理显示数据