̾??
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
?ʿ???³?????С????ꥭ???饯???ο??ͥ????ɤ?ľ?ܻ??ꤹ?뤳?Ȥ??Ǥ??ޤ????????????????ɤϴ?ñ?Ǥ?ASCIINUL??¿?Ѥ????ȡ??????????????θ????Ȥʤ???ǽ?????????ޤ???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()?θƤӽФ??ˤ??äƥХåե????ǡ????١??????ɲä??뤳?Ȥϡ????Υǡ????١????˸¤??ޤ????ۤ??λ??ѥǡ????١??????ɲä????????ϡ????ǤϤʤ??????ղä???????̵???Ǥ???