go调用exe

//调用exe

func callEXE1() {
	arg := []string{}
	cmd := exec.Command("test", arg...)
	//会向 cmd.Stdout和cmd.Stderr写入信息,其实cmd.Stdout==cmd.Stderr,具体可见源码
	output, err := cmd.CombinedOutput()
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Printf("callEXE2结果:\n%v\n\n%v\n\n%v", string(output), cmd.Stdout, cmd.Stderr)
}

func callEXE2() {
	arg := []string{}
	cmd := exec.Command("test", arg...)
	//会向 cmd.Stdout写入信息
	output, err := cmd.Output()
	if err != nil {
		fmt.Printf("Error: %s\n", err)
		return
	}
	fmt.Printf("callEXE2结果:\n%v\n%v\n%v", string(output), cmd.Stdout, cmd.Stderr)
}

test.exe源码:

//vs 2010 c++
#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	std::cout<<"中国,zhongguo2014"<<endl;
	//std::cerr<<"中国,zhongguo2014"<<endl;
	//std::clog<<"中国,zhongguo2014"<<endl;

	fprintf(stderr,"中国,zhongguo2013");
	//fprintf(stdout,"中国,zhongguo2013");
	return 0;
}



本文来自:开源中国博客

感谢作者:陈好

查看原文:go调用exe

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。