zoukankan      html  css  js  c++  java
  • 匿名管道 远程cmd

    管道是单向的,传送数据的方向是固定的,所以互相通信需要两个管道。

    STARTUPINFO si;
    ZeroMemory(&si,sizeof(si));
    si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
    si.wShowWindow = SW_SHOW;//SW_HIDE

    //创建进程且重定向标准输入输出

    //将其标准输入设置为hReadPipe2
    //将其标准输出和错误输出设置为hWritePipe1
    //通信逻辑见上图
    si.hStdInput = hReadPipe2; //子进程从这里读取指令
    si.hStdOutput = si.hStdError = hWritePipe1; //子进程把回显写入这个句柄
    char cmdLine[] = "cmd";
    PROCESS_INFORMATION ProcessInformation;
    ret=CreateProcess(NULL,(LPSTR)cmdLine,NULL,NULL,1,0,NULL,NULL,&si,&ProcessInformation);

    si.hStdInput = hReadPipe2;

    si.hStdOutput = si.hStdError = hWritePipe1;

    这两个句柄是给子进程用的读写句柄,另两个就是父进程的读写句柄。

  • 相关阅读:
    安装Hive2及配置HiveSever2
    sqoop语句
    Sqoop配置
    IO流的概述
    List集合的简单使用
    包装类
    访问权限修饰符
    接口
    抽象类
    final关键字
  • 原文地址:https://www.cnblogs.com/Browneyes/p/6053396.html
Copyright © 2011-2022 走看看