windows system函数通过管道获取返回值

发布于 2020-07-15  80 次阅读


int execmd(char* cmd, char* result)
{
	char buffer[1024];                         // 缓冲区                        
	FILE* pipe = _popen(cmd, "r");            // 管道 

	// 管道打开失败
	if (!pipe)
	{
		return 1;
	}

	// 检测管道中的结束符,0表示没有结束
	while (!feof(pipe))
	{
		// 从管道中读取数据
		if (fgets(buffer, 1024, pipe))
		{
			// 拼接 char
			strcat(result, buffer);
		}
	}

	//关闭管道 
	_pclose(pipe);

	return 0;
}