2011-04-11 3 views
1

간단한 쉘을 구현하고 있으며 쉘을 통해 환경 변수를 설정할 수 있기를 원합니다. I 모든 환경 변수를 유지하도록 상기 구조체의 동적 배열을 만드는 생각하고쉘 환경 변수에 대한 전역 변수와 로컬 변수의 정적 변수

typedef struct { 
    char *name; 
    char *value; 
} 

: I 이런 구조체가 이러한 set var = hello

같은 간단한 구를 사용하여 하나 개 ENV 변수를 대표한다. 문제는 이것을 올바르게 구현하는 방법을 모르겠습니다.

지금 당장 함수 또는 전역 변수 내에서 배열을 정적으로 만들어야하는지 잘 모르겠습니다. 어느 것이 더 좋을까요? 그리고 왜?

+0

그냥 setenv (3) 또는 putenv (3)를 사용하고 쉘의 환경에 설정을 적용하지 않는 이유는 무엇입니까? –

답변

1

변수는 어디에서 액세스해야하는지에 따라 다릅니다. 그것들이 단일 함수에서만 필요하다면 정적 로컬 변수가 가장 적합합니다. "파일 전체에"필요하다면 전역 파일 (여전히 정적 임)이 가장 적합합니다. 그렇지 않으면 글로벌.

미래의 확장을 위해 더 나은 다른 옵션은 이름/값 조합을 가져오고 설정하는 접근 자 함수를 사용하여 파일 고정 변수 세트를 만들고 그 밖의 모든 곳에서 해당 API를 사용하는 것입니다. 예를 들어 갑자기 많은 이름/값 쌍 (예 : 배열 대신 b- 트리)을 저장해야한다면 저장 메커니즘을 나중에보다 효율적으로 변경할 수 있습니다.

관련 문제