리눅스 계열이든 윈도우 계열이든 서버 모듈을 개발시 설정 문서에서 값을 읽어오는 건 필수적이다.
윈도우에서 가장 쉽게 쓸수 있는 GetPrivateProfileString는 윈도우에서만 사용을 할 수 있다.
다음 ACE 라이브러리 함수를 사용하면 리눅스든 윈도우든 똑같이 작동을 한다.
물론 윈도우에서만 개발 하는 사람들은 소스가 많이 길어지니 불편할듯... 하다.
리눅스 개발자는 이거라도 해주면 고마워 한다..
#include <ace/OS.h>
#include <ace/Configuration.h>
#include <ace/Configuration_Import_Export.h>
int ACE_TMAIN()
{ ACE_Configuration_Heap config ;
if(config.open() == -1)
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("config open error\n")), -1) ;
}
ACE_Ini_ImpExp config_importer(config) ;
if(config_importer.import_config("as.conf")== -1)
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("not found conf file\n")), -1) ;
}
ACE_Configuration_Section_Key secion ;
if(config.open_section(config.root_section(), ACE_TEXT("CONF"), 0, secion) == -1 )
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("secion open error\n")), -1) ;
}
ACE_TString strData ;
if(config.get_string_value(secion, ACE_TEXT("result"), strData) == -1 )
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("Get String Value Error\n")), -1) ;
}
printf("%s\n", strData.c_str());
config.remove_section(config.root_section(), ACE_TEXT("CONF"), 0) ;
return 0 ;
}
그럼 프로그램에서 읽어들이는 설정 문서 파일의 이름은 as.conf 이고 안에 내용은 다음과 같다.[CONF]
result= reading conf
결과적으로 프로그램 실행을 했을시 콘솔에 찍히는 내용은 다음과 같다.
reading conf
'C++ > ACE' 카테고리의 다른 글
초간단 도메인으로 IP 주소 얻기 (0) | 2014.09.16 |
---|---|
ACE_dev_pool_reactor 쓰레드 안정성에 대해 (0) | 2014.09.16 |