Apache Mesos
environment.hpp
Go to the documentation of this file.
1 // Licensed under the Apache License, Version 2.0 (the "License");
2 // you may not use this file except in compliance with the License.
3 // You may obtain a copy of the License at
4 //
5 // http://www.apache.org/licenses/LICENSE-2.0
6 //
7 // Unless required by applicable law or agreed to in writing, software
8 // distributed under the License is distributed on an "AS IS" BASIS,
9 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 // See the License for the specific language governing permissions and
11 // limitations under the License.
12 
13 #ifndef __STOUT_OS_POSIX_ENVIRONMENT_HPP__
14 #define __STOUT_OS_POSIX_ENVIRONMENT_HPP__
15 
16 #include <map>
17 #include <string>
18 
20 
21 
22 namespace os {
23 
24 inline std::map<std::string, std::string> environment()
25 {
26  char** env = os::raw::environment();
27 
28  std::map<std::string, std::string> result;
29 
30  for (size_t index = 0; env[index] != nullptr; index++) {
31  std::string entry(env[index]);
32  size_t position = entry.find_first_of('=');
33  if (position == std::string::npos) {
34  continue; // Skip malformed environment entries.
35  }
36 
37  result[entry.substr(0, position)] = entry.substr(position + 1);
38  }
39 
40  return result;
41 }
42 
43 } // namespace os {
44 
45 #endif // __STOUT_OS_POSIX_ENVIRONMENT_HPP__
Definition: posix_signalhandler.hpp:23
std::map< std::string, std::string > environment()
Definition: environment.hpp:24
char ** environment()
Definition: environment.hpp:66