2012-05-03 28 views
13

Tôi sử dụng GetEnvironmentString() để nhận các biến môi trường của chương trình.Các biến môi trường lạ này là gì?

Mỗi chương trình có kết quả như vậy trong lần đầu tiên:

=::=::\ 

Tôi không biết điều đó có nghĩa là gì?

Đây là mã:

LPWCH lpEnvString=GetEnvironmentStringsW(); 
LPWSTR lpszVariable=(LPWSTR)lpEnvString; 
while (*lpszVariable) 
{ 
    wprintf(L"%s\n",lpszVariable); 
    lpszVariable+=wcslen(lpszVariable)+1; 
} 
FreeEnvironmentStringsW(lpEnvString); 

Ngoài ra nếu chúng ta bắt đầu niêm yết biến như vậy chúng ta sẽ thấy những thứ như:

=::=::\ 
=C:=C:\Users\username\value 
=ExitCode=00000001 
ALLUSERSPROFILE=C:\ProgramData 
APPDATA=C:\Users\artik\AppData\Roaming 
CommonProgramFiles=C:\Program Files (x86)\Common Files 
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files 
CommonProgramW6432=C:\Program Files\Common Files 
... 

Mặt khác, getenv("=ExitCode") hoặc getenv("=C:") trả về null.

Bạn có thể cung cấp tài liệu thích hợp về "tính năng" này không, ví dụ getenv() bỏ qua các chuỗi như vậy và cách xử lý các giá trị như vậy?

+1

Hiển thị mã cho chúng tôi. – Nick

+2

@Nick Tất cả những gì bạn cần làm là gọi 'GetEnvironmentStrings() ' –

+0

Tôi đoán tôi muốn kiểm tra xem anh ta đang làm gì với giá trị trả về để nhận chuỗi được cung cấp. Ngoài ra - bạn đang giả sử tôi có một cửa sổ PC :) – Nick

Trả lời

8

Chúng còn sót lại từ việc xử lý thư mục ms-dos cmd.exe thi đua, về cơ bản chúng có ít sử dụng và cổ hơn bất kỳ thứ gì. Về cơ bản, nó theo dõi một thư mục hiện tại trên mỗi ổ đĩa và được giữ như một biến môi trường để chuyển sang các quy trình khác một cách dễ dàng.

+0

Câu hỏi đặt ra là nhiều hơn cho tài liệu về cách getenv ví dụ nên xử lý chúng, vv Các con trỏ tới tài liệu được yêu cầu. – Artyom

+2

@Artyom, tôi nghĩ rằng takeaway là bất cứ điều gì bắt đầu với '=' là riêng cho vỏ và cố ý không có giấy tờ, và cần được bỏ qua. –

+0

@MarkRansom vấn đề là các chuỗi này xuất hiện trong danh sách GetEnvironmentStrings và hành vi như vậy dường như không có giấy tờ về không rõ ràng về cách xử lý chúng – Artyom

Các vấn đề liên quan