̾??
cgetent
, cgetset
,
cgetmatch
, cgetcap
,
cgetnum
, cgetstr
,
cgetustr
, cgetfirst
,
cgetnext
, cgetclose
—
?????ѥӥ??ƥ??ǡ????١????˥????????????롼????
#include
<stdlib.h>
int
cgetent
(char
**buf, char **db_array, char
*name) int
cgetset
(char *ent)
int
cgetmatch
(char *buf,
char *name) char *
cgetcap
(char *buf,
char *cap, int type)
int
cgetnum
(char *buf,
char *cap, long *num)
int
cgetstr
(char *buf,
char *cap, char **str)
int
cgetustr
(char *buf,
char *cap, char **str)
int
cgetfirst
(char **buf,
char **db_array) int
cgetnext
(char **buf,
char **db_array) int
cgetclose
(void)
cgetent
() ?ϡ?
NULL
?ǽ??????ե?????????
db_array
?ǻ??ꤷ???ǡ????١??????顢?????ѥӥ??ƥ?
name ??ȴ???Ф??? buf
???? malloc
???????Υ??ԡ??Υݥ????֤??ޤ???
cgetent
() ?ؿ??? ASCII
?ե??????˥??????????????ˡ??ޤ???
.db
?ǽ??????ե???????õ???ޤ?(
cap_mkdb(1)
????)?? Buf ?ϡ??ʸ???
cgetmatch
(), cgetcap
(),
cgetnum
(), cgetstr
() ??????
cgetustr
()
?θƤӽФ????٤Ƥ??̤????ݻ??????ʤ????Фʤ??ޤ????ƤӽФ??δ?λ????
free(3)
?Ǥ??ޤ???ȴ???Ф?????????????????
0?????֤??쥳???ɤ?̤??????
tc
??ĥ?δޤޤ??Ƥ?????????
1?????ᤵ?줿?쥳???ɤθ??դ????ʤ??ä???????
-1
???֤??ޤ????????ƥ२?顼(?ե????뤬?????ץ??Ǥ??ʤ??ä?/?ɤ???
?ʤ??ä????ʤ?)??ȯ???????????? -2
???֤??ȤȤ??ˡ? errno
?????ꤵ???ޤ????ޤ???????Ū?ʻ??ȥ롼?פ????Ф??줿??????
-3 ???֤??ޤ?(???Ҥ? tc=
????)??
cgetset
()
?ؿ??ϡ?1
?ĤΥ????ѥӥ??ƥ??쥳???ɥ????ȥ꤬?ޤޤ줿???????饯???Х?
?ե??Υ????ѥӥ??ƥ??ǡ????١????ؤ??ɲä?ͭ???ˤ??ޤ???
??ǰŪ?ˤϡ?
???Υ????ȥ꤬?ǽ??? ``?ե?????''
?Ȥ??ƥǡ????١??????ɲä??????Τǡ?
cgetent
()
?θƤӽФ??ǤϺǽ??˸????????ޤ????????ȥ???
ent ???Ϥ????ޤ?????
ent ?? NULL
?ξ??硢???ߤΥ????ȥ??ϥǡ????١?????????????ޤ???
cgetset
()
?θƤӽФ??ϡ??ǡ????١??????????????Ԥ??ʤ????Фʤ??ޤ?????
cgetent
()
?ƤӽФ??????ˡ??ƤӽФ?ɬ?פ??????ޤ??????????????ʥ??????????¹?
?????????ϡ??ǽ??Υ????????륢???????ƤӽФ?(
cgetfirst
() ?ޤ???
cgetnext
()
)?????˸ƤӽФ?????
cgetclose
()
?ƤӽФ???ľ???˸ƤӽФ?ɬ?פ??????ޤ?(???ǻ???)???ƤӽФ?????????????????
0 ???????Ԥ????????? -1 ???֤??ޤ???
cgetmatch
()
?ؿ??ϡ? name
???????ѥӥ??ƥ??쥳???? buf
??̾???? 1?Ĥʤ??? 0?????Ǥʤ????? -1
???֤??ޤ???
cgetcap
()
?ؿ??ϡ??????? type
?ˤ??äƥ????ѥӥ??ƥ?
cap
?????ѥӥ??ƥ??쥳????
buf ?Ǹ??????ޤ????????פϡ?1
?ĤΥ????饯???????Ѥ??ƻ??ꤷ?ޤ?????????
(`:')?????Ѥ????????ϡ??????פΤʤ??????ѥӥ??ƥ????????????ޤ?(???Ǥ?
?????פ??????Ȥ??Ƥ???????)??????????????????????
buf ?ˤ??? cap
?ͤΥݥ????֤??ޤ????ᤵ?줿?????ѥӥ??ƥ??????դ????ʤ??????ϡ?
NULL
???֤??ޤ????????ѥӥ??ƥ??ͤν??????ϡ?
‘
’: ?ޤ??? ASCII
NUL
?Ǽ??????ޤ?(???ǤΥ????ѥӥ??ƥ??ǡ????١????ι?ʸ???Ȥ??Ƥ?????
??)??
cgetnum
()
?ؿ??ϡ? buf
?Ǽ????줿?????ѥӥ??ƥ??쥳???ɤ??顢???ͥ????ѥӥ??ƥ?
cap
???ͤ??????Ф??ޤ??????ο??ͤ?
num ?˼??????? long
???֤????ޤ?????????????????
0???֤??ޤ????ᤵ?줿???ͥ????ѥӥ??ƥ???
???դ????ʤ??????? -1 ???֤??ޤ???
cgetstr
()
?ؿ??ϡ? buf
?Ǽ????줿?????ѥӥ??ƥ??쥳???ɤ??顢???ȥ??????ѥӥ??ƥ?
cap
???ͤ??????Ф??ޤ??????Υ??ȥ??Υǥ????ɤ??졢
NUL
?ǽ?????
malloc
???줿???ԡ??Υݥ?????
str ?˼??????? char *
???֤????ޤ????????????????ϡ??ǥ????ɤ??줿???ȥ??ν?ü??
NUL
???ޤޤʤ??????֤??ޤ????ᤵ?줿???ȥ??????ѥӥ??ƥ??????դ?????
???????? -1
???֤ꡢ?????ƥ२?顼(???ȥ졼?????꿶?ꥨ?顼)??ȯ????
???????? -2 ???֤??ޤ???
cgetustr
()
?ؿ??? cgetstr
()
??Ʊ?ͤʵ?ǽ?Ǥ??????ü쥭???饯??????ĥ???ʤ??ǡ??ष???????ѥӥ??ƥ?
???ȥ??Ρ?ʸ???ɤ????ƥ????饯?????֤??Ȥ??????㤤?ޤ???
cgetfirst
()
??????
cgetnext
()
?ؿ??ϡ??ե?????̾?? NULL
?ݥ??ǽ????????? db_array
?ؤΡ????????????ʥ??????????Ǥ????ؿ????롼?פ????????ޤ???
cgetfirst
()
?ؿ??ϡ??????ǡ????١????ˤ????ǽ??Υ쥳???ɤ??֤????ǽ??Υ쥳???ɤؤ?
???????????ꥻ?åȤ??ޤ???
cgetnext
() ?ؿ??ϡ?????
cgetfirst
() ?ޤ???
cgetnext
()
?ƤӽФ??ˤ??ä??֤ä??쥳???ɤΡ??????ǡ????١????ˤ??뼡?Υ쥳???ɤ?
?֤??ޤ??????θƤӽФ????ʤ??????ϡ??????ǡ????١????ˤ????ǽ??Υ쥳??
?ɤ??֤??ޤ????ƥ쥳???ɤ?
buf ?Ǽ???????
???줿???ԡ????֤ꡢ tc
??ĥ???ʤ????ޤ???(???Ǥ?
tc=
???????Ȥ??Ƥ?????????)
?ǡ????١???????????λ???ơ??֤??쥳???ɤ??ʤ???????
0???֤??ޤ???????
???????????֤??쥳???ɤ????ꡢ?????˼??Υ쥳???ɤλĤäƤ?????ǽ??????
??(?ǡ????١????ν??????ˤޤ?ã???Ƥ??ʤ?)??????
1???֤??ޤ????֤??쥳??
?ɤˡ?̤?????? tc
??ĥ?δޤޤ??Ƥ?????????
2???֤??ޤ????????ƥ२?顼??ȯ????????????
-1
???֤??ޤ???????Ū?ʻ??ȥ롼?פ????Ф??줿??????
-2 ???֤??ޤ??? (???Ǥ? tc=
???????Ȥ??Ƥ?????????)?ǡ????١???????λ????(0???֤ä?)???硢?ǡ?
???١????ϥ????????????ޤ???
cgetclose
()
?ؿ??ϡ????????????ʥ????????????????????٤ƤΥ????ꤪ???ӻ???
?????Ƥ????ե????뵭?һҤ????????ޤ???
cgetset
()
?θƤӽФ??ˤ??äƥץå??夵?줿?Хåե??ϡ??õ???ʤ????Ȥ????դ???
??????????
?????ѥӥ??ƥ??ǡ????١????ϰ??̤?
ASCII
?Ǥ???ɸ???Υƥ????ȥ??ǥ??????Խ??Ǥ??ޤ????????Ԥ?????
`#' ?ǻϤޤ?
?Ԥϥ??????ȤʤΤ?̵?뤵???ޤ???`\'
?ǽ??????Ԥϡ????ιԤ????ߤι?
??³???Ǥ??뤳?Ȥ??ޤ??????? `\'
?????Ӹ???³?????Ԥ?̵?뤵????
????Ĺ???ԤϤդĤ??????Ĥ???ʪ???Ԥ?ʬ?䤵?졢?ǽ??Ԥ??????Ƴƹ?????
`\' ???դ??????ޤ???
?????ѥӥ??ƥ??ǡ????١????ϡ???Ϣ?Υ쥳????(1????????????1??)?ˤ??ä?
?????????ޤ????ƥ쥳???ɤˤϡ????ѿ???
`:' ??ʬ?????줿?ե???????(????
?ѥӥ??ƥ?)???ޤޤ??ޤ??????ڡ????????饯??(???ڡ????????ӥ???)?ǡ?
???٤ƹ??????????ե??????ɤ?̵?뤵???ޤ???
?ƥ쥳???ɤκǽ??Υ????ѥӥ??ƥ??ϡ?
`|' ?????饯????ʬ?????줿̾??(ʣ
??)?????ꤷ?ޤ????????????ˤ??äƺǸ???̾???Ͼ??˥??????Ȥǡ????å?????
?ץ????Ȥ??ƤΰտޤϤ????ޤ????Ȥ??С?
termcap
?ǡ????١?????
vt100
?쥳???ɤκǽ??ϼ??ΤȤ????Ǥ???
d0|vt100|vt100-am|vt100am|dec
vt100:
?????ǤϺǽ餫??
4?Ĥ?̾?????????Υ쥳???ɤΥ????????˻??ѤǤ??ޤ???
?Ĥ??ζ????ǤϤʤ??????ѥӥ??ƥ??Ϥ??줾?졢???ץ??????ǥ????????ͤ?
????³??̾??????(̾??????)???祻?åȤǵ??Ҥ??ޤ??????ΤȤ????Ǥ???
̾?? |
?????פΤʤ?[?֡???]
?????ѥӥ??ƥ?̾ [????] |
nameTvalue |
?? value
?????ĥ????ѥӥ??ƥ? (name,
T) |
name@ |
¸?ߤ??????ѥӥ??ƥ?
name |
nameT@ |
¸?ߤ??ʤ?(???ߤ?)?????ѥӥ??ƥ?
(name, T) |
̾???ϡ?1?Ĥޤ???ʣ???Υ????饯???ǹ????????ޤ???̾???ˤ?
`:' ??????
???????륭???饯?????ޤ??뤳?Ȥ??Ǥ??ޤ???????????ǽ?????饯???˸??ꤷ
?ơ? `#' ??`=' ??`%' ??`@'
?ʤɤΥ????ե??å??????饯???λ??Ѥ???
?Τ????̾??Ϻ??ɤǤ????????פϡ??????ѥӥ??ƥ?̾?줾???δ?Ϣ??????
?????ͤ??????̤????Τ˻??Ѥ?????
1?ĤΥ????饯???Ǥ???`:' ?????????٤?
?Υ????饯???????ѤǤ??ޤ??????դĤ???
`#'??`=' ??`%' ???ʤɤΥ????ե???
???????饯???????Ѥ????ޤ????ͤ?̵???¤ʿ??Υ????饯???ǡ?`:'
????????
?٤ƤΥ????饯???????ѤǤ??ޤ???
?????ѥӥ??ƥ??쥳???ɤϡ?(̾??????)?????Υ??åȤҤ??ޤ???̾???ϡ?
???????˷??礵?줿ʣ?????ͤ????Ĥ??Ȥ??Ǥ??ޤ???1?Ĥ?̾?????Ф????ۤ?
???ͤϡ????줾???? type
?ˤ??äƼ??̤????ޤ???
cgetcap
()
?ؿ??ϡ??????ѥӥ??ƥ?̾?????Ӥ????ͤΥ????פ?Ϳ?????줿??̾?????ͤΥ?
?????֤??ޤ???
?????? `#' ?????? `='
?ϴ??Ѥǡ????ͤ????ӥ??ȥ????????????ͤ???
???ޤ????????????Υ????פΤ??????????Ӹ????϶???Ū?ʤ??ΤǤϤ????ޤ?????
?ؿ?
cgetnum
()
?????? cgetstr
() ?ˤ??äơ?`#'
?????? `='
?ν????ι?ʸ?????Ӱ?̣?????¹ԤǤ??ޤ???????
?פΤʤ??????ѥӥ??ƥ??ϡ??դĤ????ͤ????ӵ??ͤ줾?켨??¸?ߤޤ???
?????դ??Ρ??֡??륪?֥??????Ȥ??ޤ??????β????ϴ?ñ?˼??Τ褦??ɽ
?????Ȥ??Ǥ??ޤ???
(getcap(buf, name, ':') !=
NULL)
?ü쥱???ѥӥ??ƥ?
tc= name
?ϡ?̾???ˤ??äƻ??ꤷ???쥳???ɤ?
tc
?????ѥӥ??ƥ????֤????????褦?˻ؼ????ޤ???
tc
?????ѥӥ??ƥ??ϡ?Ʊ????
tc
?????ѥӥ??ƥ????ޤޤ줿?쥳???ɤ????֤Ǥ??ޤ???1?ĤΥ쥳???????ǡ?ʣ????
tc
?????ѥӥ??ƥ??????ѤǤ??ޤ???
tc
?γ?ĥ?ϰ?(???ʤ????????????????????ϰ?)?ˤϡ?
tc
?????????줿?ե??????ʹߤΡ????Υե??????????ˤ??뤹?٤ƤΥե????뤬??
?ޤ??ޤ???
?????ѥӥ??ƥ??쥳???ɤ??ǡ????١????Ǹ????????????ϡ????θ????Ǻǽ???
Ŭ?礷???쥳???ɤ??֤??ޤ????????ѥӥ??ƥ????쥳???ɤǥ????????????ϡ?
?ǽ???Ŭ?礷???????ѥӥ??ƥ????֤??ޤ????????ѥӥ??ƥ?
:nameT@:
?ϡ?????³??̾???Υ????? T
???ͤΡ????????????????ޤ????ޤ????????ѥӥ??ƥ?
:name@:
?ϡ?????³??̾???Τ????????ͤ??ԲĻ??ˤ??ޤ???
tc
?????ѥӥ??ƥ????Ȥ߹??蘆?줿???????ε?ǽ?ϡ????????????ѥӥ??ƥ?????
?ä????ꡢ???????????ˤ??äƤ????ޤǤ??????????????ꡢ?ޤ???
`@'
?????ѥӥ??ƥ??ˤ??äƸ???³???????????ꤹ?뤳?Ȥˤ??äơ??ۤ??Υǡ?
???١????ޤ??ϥ쥳???ɤޤ??ޤ??Ѳ??????뤳?Ȥ??Ǥ??ޤ???
example|an example of binding multiple values to names:\
:foo%bar:foo^blah:foo@:\
:abc%xyz:abc^frap:abc$@:\
:tc=more:
?????ѥӥ??ƥ? foo
?ˤϤ????˷??礵?줿2 ?Ĥ???(?????? `%' ??
bar ?????? ?????? `^'
??blah)???????ޤ??????礵?줿?ۤ??Τ??٤Ƥ??ͤϱ??????Ƥ??ޤ???
?????ѥӥ??ƥ?abc
?ˤ????礵?줿2?Ĥ??ͤ??????ޤ??????????ѥӥ??ƥ??쥳????
more ?Ǥ????????ػߤ????Ƥ????Τϡ???????
`$' ???ͤ????Ǥ???
file1:
new|new_record|a modification of "old":\
:fript=bar:who-cares@:tc=old:blah:tc=extensions:
file2:
old|old_record|an old database record:\
:fript=foo:who-cares:glork#200:
???????Υ쥳???ɤ?ȴ???Ф??????ϡ?file2??????file1??
cgetent
()
???ƤӽФ??ޤ????????ˤ??ä? file1
?ο??????ѥӥ??ƥ??쥳???? fript=bar ????file2
?ε쥱???ѥӥ??ƥ??쥳???ɤ??????֤??줿
fript=foo ???????ޤ????ޤ???who-cares@
?????쥳???ɤˤ??뤹?٤Ƥ? who-cares
???????ԲĻ??ˤ??ޤ????????ˡ?glork#200
?????쥳???ɤ????????ۤ??졢 blah
?????ӡ????Υ쥳???ɤγ?ĥ?ˤ??ä????????줿???ڤ????쥳????????
?????????????ɲä????ޤ????????Ǥϡ?tc=old
?????? fript=bar ?????? who-cares@
?????????֤????Ȥ????פǤ????????????????? tc=old
?θ?????
?????????ϡ????쥳???ɤ???????ͥ?褵???ޤ???
cgetnum
() ??????
cgetstr
()
?ˤ??ä????????ߤΡ?2?ĤΥ????פ??????ޤ??????ΤȤ????Ǥ???
name#number |
??number?????Ŀ??ͥ????ѥӥ??ƥ?̾ |
name=string |
??string?????ĥ??ȥ??????ѥӥ??ƥ?̾ |
name#@ |
¸?ߤ??ʤ?(????)???ͥ????ѥӥ??ƥ?̾ |
name=@ |
¸?ߤ??ʤ?(????)???ȥ??????ѥӥ??ƥ?̾ |
???ͥ????ѥӥ??ƥ??ͤϡ?3
?Ĥδ????Τɤ줫??Ϳ???뤳?Ȥ??Ǥ??ޤ????ޤ????ǻϤޤ????ϡ?16
?ʿ??Ȥ??Ʋ??ᤵ???ޤ?(??ʸ???????Ӿ?ʸ????
a-f ???Ȥ???16
?ʿ??γ?ĥ???????Ȥ??Ǥ??ޤ?)??????¾???ǻϤޤ??????ϡ?8
?ʿ??Ȥ??Ʋ??ᤵ???ޤ????Ĥ??ο????Ϥ??٤?
10 ?ʿ??Ȥ??Ʋ????????ޤ???
???ȥ??????ѥӥ??ƥ??ͤˤϡ????????륭???饯?????ޤ??뤳?Ȥ??Ǥ??ޤ?????????ǽ?ǤϤʤ?ASCII
?????ɡ????ԥ????ɤ䥳?????ʤɤ????????????ץ????????Ȥäƴ?ñ??ɽ???ޤ??????ΤȤ????Ǥ???
^X |
('X'&037) |
?????ȥ?????X |
\b,\B |
(ASCII010) |
?Хå????ڡ??? |
\t,\T |
(ASCII011) |
???? |
\n,\N |
(ASCII012) |
?饤???ե?????(????) |
\f,\F |
(ASCII014) |
?ե??????ե????? |
\r,\R |
(ASCII015) |
???????å?????? |
\e,\E |
(ASCII027) |
?????????? |
\c,\C |
(:) |
?????? |
\\ |
(\) |
?Хå??????å??? |
\^ |
(^) |
???????å? |
\nnn |
(ASCII8?ʿ?nnn) |
`\ ?θ??˺??? 3 ???? 8
?ʿ???³?????С????ꥭ???饯???ο??ͥ????ɤ?ľ?ܻ??ꤹ?뤳?Ȥ??Ǥ??ޤ????????????????ɤϴ?ñ?Ǥ?ASCII
NUL
??¿?Ѥ????ȡ??????????????θ????Ȥʤ???ǽ?????????ޤ???NUL
?ϤդĤ????ȥ??ν????????ޤ????顢???Ѥ??????äƤ????դ?ɬ???Ǥ???¿???Υ??ץꥱ?????????ǡ?NUL
??ɽ???Τ?
`\200' ?????Ѥ????Ƥ??ޤ???
Cgetent
(),cgetset
(),cgetmatch
(),cgetnum
(),cgetstr
(),cgetustr
(),cgetfirst
(),??????cgetnext
()?ʤɤϡ???????????????????????
0?ޤ??Ϥ????????????????֤??????Ԥ?????????
0?????ͤ??֤??ޤ???cgetcap
()?ؿ??ξ????ϡ??????????ȥ????饯???ݥ????Ԥ?????NULL
???֤??ޤ???
cgetent
()??????cgetseq
()?ؿ??μ??ԤǤϡ?errno?????ۤ??Υ饤?֥????ؿ?fopen(2),close(2),open(2),??????close(2)?ʤɤΥ??顼?????ꤵ???????礬?????ޤ???
cgetent
(),cgetset
(),cgetstr
()??????cgetustr
()?μ??ԤǤϡ????Υ??顼??errno?????ꤵ???????礬?????ޤ???
- [
ENOMEM
]
- ???꿶???????꤬?????ޤ?????
?????? (`:')
????̾?????????ס??ͤ˻??ѤǤ??ޤ?????
cgetent
()?ˡ?tc=name
?롼?פΥ????å????????ޤ?????
cgetset
()?θƤӽФ??ˤ??äƥХåե????ǡ????١??????ɲä??뤳?Ȥϡ????Υǡ????١????˸¤??ޤ????ۤ??λ??ѥǡ????١??????ɲä????????ϡ????ǤϤʤ??????ղä???????̵???Ǥ???