Trong chương trình C++ của tôi, tôi muốn tải một số biến môi trường từ trình bao vào một số chuỗi. Điều này có thể giải quyết như thế nào?Cách đọc các biến môi trường Linux trong C++
Trả lời
Sử dụng hàm getenv() - xem http://en.cppreference.com/w/cpp/utility/program/getenv. Tôi thích bọc phần này như sau:
string GetEnv(const string & var) {
const char * val = ::getenv(var.c_str());
if (val == 0) {
return "";
}
else {
return val;
}
}
tránh các vấn đề khi biến môi trường không tồn tại và cho phép tôi sử dụng chuỗi C++ dễ dàng để truy vấn môi trường. Tất nhiên, nó không cho phép tôi kiểm tra nếu một biến môi trường không tồn tại, nhưng nói chung không phải là một vấn đề trong mã của tôi.
Tương tự như trong C: sử dụng getenv (variablename).
Bạn chỉ có thể sử dụng char * env []
int main(int argc, char* argv[], char* env[]){
int i;
for(i=0;env[i]!=NULL;i++)
printf("%s\n",env[i]);
return 0;
}
here là một bài viết đầy đủ về vấn đề của bạn, từ trang web của tôi.
Cảm ơn bạn đã đăng câu trả lời! Vui lòng đảm bảo đọc kỹ [FAQ on Self-Promotion] (http://stackoverflow.com/faq#promotion). Cũng lưu ý rằng nó là * bắt buộc * mà bạn đăng tuyên bố từ chối trách nhiệm mỗi lần bạn liên kết đến trang web/sản phẩm của riêng bạn. –
Đó là "chức năng", không phải "fonction". (Tham khảo trang web của bạn.) Ngoài ra, tham số thứ ba cho 'main()' là không chuẩn, và không được bảo đảm để làm việc trên tất cả các nền tảng/trình biên dịch. – DevSolar
có hoạt động với các biến môi trường được xuất/đặt sau khi chương trình bắt đầu không? – nurettin
- 1. Cách đọc biến môi trường người dùng trong C#?
- 2. Biến môi trường trong Python trên Linux
- 3. đọc biến môi trường bash
- 4. Đọc một biến môi trường từ applicationContext.xml
- 5. Đặt biến môi trường Linux theo lập trình trong Java
- 6. Có cách nào để đọc các biến môi trường của các quá trình khác bằng Perl và trong môi trường Linux hoặc Solaris không?
- 7. reinitialize biến môi trường hệ thống rộng trong linux
- 8. biến đọc môi trường từ tập tin cấu hình logback
- 9. Biến môi trường Javascript
- 10. C# using Conditional() với biến môi trường
- 11. C# biến môi trường thiết lập
- 12. Biến môi trường Netbeans cho C++ makefile
- 13. Làm cách nào để Cygwin đọc chính xác các biến môi trường Windows của tôi?
- 14. Đặt biến môi trường có linux không gian
- 15. Biến môi trường Ruby
- 16. Lấy các biến môi trường sử dụng mã C
- 17. Cách liệt kê tất cả các biến môi trường trong ứng dụng c/C++
- 18. Cách lấy các biến môi trường từ bên trong gvim
- 19. MSBuild các biến môi trường bắt buộc
- 20. Biến môi trường tùy chỉnh trong PHP
- 21. Cách chính xác để bỏ đặt biến môi trường linux trong python là gì?
- 22. Đặt biến môi trường cục bộ trong C++
- 23. Đánh giá các biến môi trường thành một chuỗi
- 24. Đọc các biến môi trường từ tệp trong Windows Batch (cmd.exe)
- 25. Cách đặt biến môi trường trong dịch vụ Giám sát
- 26. Cách đặt biến môi trường trong Visual Studio 2012?
- 27. Đặt biến môi trường Node.js trong WebStorm
- 28. IDEA: Cách đặt biến môi trường?
- 29. UNIX, nhận biến môi trường
- 30. Tham chiếu Biến môi trường trong web.xml
Đôi khi bạn có thể muốn phân biệt giữa 'không đặt' và 'trống' – sehe
Phải .... tạo mẫu ...... ..... được xác định trên ... CharT. Oh chờ đợi, điều đó đòi hỏi SFINAE. Oh well. +1 –
bạn có thể sử dụng 'boost :: optional' làm kiểu trả về để phân biệt giữa vắng mặt và trống. –