diff --git a/src/apex/apex_options.cpp b/src/apex/apex_options.cpp index 10c48a69..5f786811 100644 --- a/src/apex/apex_options.cpp +++ b/src/apex/apex_options.cpp @@ -138,9 +138,9 @@ namespace apex std::cout << #name << " : " << options.member_variable() << std::endl; FOREACH_APEX_STRING_OPTION(apex_macro) #undef apex_macro - std::unique_ptr tmpstr = proc_data_reader::get_command_line(); + std::string tmpstr(proc_data_reader::get_command_line()); if (tmpstr.length() > 0) { - std::cout << tmpstr << std::endl; + std::cout << "Command line: " << tmpstr << std::endl; } return; } diff --git a/src/apex/proc_read.cpp b/src/apex/proc_read.cpp index 801a722f..313ba84d 100644 --- a/src/apex/proc_read.cpp +++ b/src/apex/proc_read.cpp @@ -13,6 +13,7 @@ #include "apex_api.hpp" #include "apex.hpp" #include +#include #include #include #include @@ -694,21 +695,18 @@ double msr_current_power_high(void) { } #endif -std::unique_ptr proc_data_reader::get_command_line(void) { +std::string proc_data_reader::get_command_line(void) { std::string line; - std::fstream myfile ("/proc/self/cmdline"); - std::stringstream ss; - if (myfile.is_open()) - { - while ( getline (myfile,line) ) - { - ss << line << '\n'; - } - myfile.close(); + std::fstream myfile("/proc/self/cmdline", ios_base::in); + if (myfile.is_open()) { + getline (myfile,line); + myfile.close(); } else { - // it wasn't there, so return nothing. + // it wasn't there, so return nothing. } - return std::move(ss.str()); + return line; } +} // namespace + #endif // APEX_HAVE_PROC diff --git a/src/apex/proc_read.h b/src/apex/proc_read.h index 7ec00a1c..56ecb92f 100644 --- a/src/apex/proc_read.h +++ b/src/apex/proc_read.h @@ -60,7 +60,7 @@ class proc_data_reader { stop_reading(); delete worker_thread; } - static std::unique_ptr get_command_line(void); + static std::string get_command_line(void); }; class ProcData {