fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. //environment global
  5. struct environment_t {
  6. const char* const path = std::getenv("PATH");
  7. const char* const home = std::getenv("HOME");
  8. const char* const shell = std::getenv("SHELL");
  9. const char* const logname = std::getenv("LOGNAME");
  10. const char* const uid = std::getenv("UID");
  11. const char* const hostname = std::getenv("HOSTNAME");
  12. const char* const mail = std::getenv("MAIL");
  13. const char* const editor = std::getenv("EDITOR");
  14. const char* const temp = std::getenv("TEMP");
  15. protected:
  16. environment_t()=default;
  17. };
  18. const environment_t& env() {
  19. static const environment_t values = {};
  20. return values;
  21. }
  22.  
  23. // derived globals
  24. const std::string& app_data_directory() {
  25. static const std::string value(env().home + std::string("app/data"));
  26. return value;
  27. }
  28.  
  29. // safe and easy!
  30. int main() {
  31. std::cout << app_data_directory();
  32. }
Success #stdin #stdout 0.01s 5500KB
stdin
1
2
10
42
11
stdout
/home/ymi9sTapp/data