質問: /abc/efg のようにxxx変数と内容ってかんじで使われてますが、 こういった仕組みを作るには、apacheやpostfixなどの ソフトはどのようにして行っているのでしょうか? 明確にわかる方がいらっしゃいましたら宜しくお願いします。
回答: http://www.microsoft.com/japan/msdn/library/default.asp?url=/jap... MSDN ライブラリ サイト移行に関する重要なお知らせ ファイルを行単位で読んで、= で区切って一文字づつ解釈。たいていその種のことをやってます。 いちおう、 char conf[256], str[256]; FILE fp = fopen(”conf”, ”r”); if (fp!=NULL) { fscanf(fp, ”%s = %s¥n”, conf, str); fclose(fp); } こんな感じで conf に ”xxx” が、str に ”/abc/efg” が得られますが、このままだと = の前後に空白がないとダメだとか、改行がないとダメだとか、まったく違うパターンのファイルだと誤動作する可能性があるとか、色々問題あるので(つまりエラー処理が出来ない)まともなソフトは fscanf はほとんど使いません。 なお、Windows に限ってよければ GetPrivateProfileString() と言うAPIがありますので、 GetPrivateProfileString(””, ”xxx”, ””, str, sizeof str-1, ”conf”); これで、str に ”/abc/efg” が得られます。 なお、最初の引数はセクション名で [ ] 内に指定した文字列で指定した行で区切られた部分だけを検索対象としますので apache 等はこれは使ってないはずです。