void Daemon::runMain() { std::vector< char * > args( _arguments.size() ); std::transform( _arguments.begin(), _arguments.end(), args.begin(), [] ( const std::unique_ptr< char[] > &ptr ) { return ptr.get(); } ); brick::net::Redirector stdOutput( STDOUT_FILENO, [this] ( char *s, size_t length ) { this->redirectOutput( s, length, Output::Standard ); } ); brick::net::Redirector stdError( STDERR_FILENO, [this] ( char *s, size_t length ) { this->redirectOutput( s, length, Output::Error ); } ); try { _main( args.size(), &args.front() ); } catch ( const std::exception &e ) { std::cerr << "Uncaught exception: " << e.what() << std::endl; } catch ( ... ) { std::cerr << "Uncaught unknown exception." << std::endl; } }
void ProcessRunner::updateText() { QByteArray data = process->readAllStandardOutput(); QString stdOutput(data); output += stdOutput; if(context) context->print(toString(stdOutput)); }
// save the solution void MainWidget::saveFile() { QString path = QFileDialog::getSaveFileName(this, tr("保存初始文件"), ".", tr("文本文件(*.txt)")); if(!path.isEmpty()) { std::string temp = path.toStdString(); const char *temp2 = temp.c_str(); freopen(temp2, "w", stdout); stdOutput(elapsedTime); fflush(stdout); fclose(stdout); } }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Transform tests /////////////////////////////////////////////////////////////////////////////////////////////////////////////// TEST(simple1,counting) { bolt::amp::counting_iterator<int> iter(0); bolt::amp::counting_iterator<int> iter2=iter+1024; std::vector<int> input1(1024); std::vector<int> input2(1024); std::vector<int> stdOutput(1024); std::vector<int> boltOutput(1024); for(int i=0 ; i< 1024;i++) { input1[i] = i; } input2 = input1; std::transform( input1.begin(), input1.end(), input2.begin(), stdOutput.begin(), bolt::amp::plus<int>()); bolt::amp::transform(iter,iter2,input1.begin(),boltOutput.begin(),bolt::amp::plus<int>()); cmpArrays( stdOutput, boltOutput, 1024 ); }
TEST(simple1,Serial_counting) { bolt::amp::counting_iterator<int> iter(0); bolt::amp::counting_iterator<int> iter2=iter+1024; std::vector<int> input1(1024); std::vector<int> input2(1024); std::vector<int> stdOutput(1024); std::vector<int> boltOutput(1024); for(int i=0 ; i< 1024;i++) { input1[i] = i; } input2 = input1; bolt::amp::control ctl = bolt::amp::control::getDefault( ); ctl.setForceRunMode(bolt::amp::control::SerialCpu); std::transform( input1.begin(), input1.end(), input2.begin(), stdOutput.begin(), bolt::amp::plus<int>()); bolt::amp::transform(ctl, iter,iter2,input1.begin(),boltOutput.begin(),bolt::amp::plus<int>()); cmpArrays( stdOutput, boltOutput, 1024 ); }