怎样创建一个新的进程,标准输出是新进程的标准输入,标准输入是新进程的标准输出?

zyq_123 2012-07-06 10:46:24
RT
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fdl19881 2012-07-07
  • 打赏
  • 举报
回复
这个就是使用管道 + 重定向
如果是linux下,很简单,win下面不知道。
涉及到的函数为:pipe , fork , dup2 ,execlp
fdl19881 2012-07-07
  • 打赏
  • 举报
回复
这个就是使用管道 + 重定向
如果是linux下,很简单,win下面不知道。
涉及到的函数为:pipe , fork , dup2
Gloveing 2012-07-06
  • 打赏
  • 举报
回复
CreateProcess
The CreateProcess function creates a new process and its primary thread. The new process runs the specified executable file.

To create a process that runs in a different security context, use the CreateProcessAsUser or CreateProcessWithLogonW function.

BOOL CreateProcess(
LPCTSTR lpApplicationName, // name of executable module
LPTSTR lpCommandLine, // command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
BOOL bInheritHandles, // handle inheritance option
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // new environment block
LPCTSTR lpCurrentDirectory, // current directory name
LPSTARTUPINFO lpStartupInfo, // startup information
LPPROCESS_INFORMATION lpProcessInformation // process information
);
设置以下LPSTARTUPINFO lpStartupInfo中的设置红色部分就行
typedef struct _STARTUPINFO {
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;

HANDLE hStdError;
} STARTUPINFO, *LPSTARTUPINFO;
elegant87 2012-07-06
  • 打赏
  • 举报
回复
应该是多线程的吧
CreateThread()
查下MSDN

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧