2012-05-18 62 views
7

chúng tôi có thể nhận được các biến môi trường trong C như thế này:đâu là định nghĩa về môi trường bên ngoài?

extern char **environ; 
int main(int argc, char *argv[]) 
{ 
    int count = 0; 

    printf("\n"); 
    while(environ[count] != NULL) 
    { 
     printf("[%s] :: ", environ[count]); 
     count++; 
    } 

    return 0; 
} 

nhưng đâu là, định nghĩa của environ? Tôi không thể tìm thấy điều đó trong unistd.h. và làm như thế nào?

Trả lời

5

environ được định nghĩa như là một biến toàn cầu trong nguồn tập tin Glibc posix/environ.c.

1

người đàn ông:

Biến này phải được khai báo trong chương trình người dùng, nhưng được khai báo trong unistd.h tập tin tiêu đề trong trường hợp các tập tin tiêu đề đến từ libc4 hoặc libc5, và trong trường hợp họ đến từ glibc và _GNU_SOURCE đã được xác định.

+0

cảm ơn bạn, nhưng nó được xác định ở đâu? – nzomkxia

+0

trong src của glibc Tôi nghĩ rằng – triclosan

+0

lý do tại sao các nguồn khác nhau của các tập tin tiêu đề làm cho nó không thích hợp để xác định các biến trong unistd.h? bạn có thể làm rõ không? – nzomkxia

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