̾??
sbuf_new
,
sbuf_clear
, sbuf_setpos
,
sbuf_bcat
, sbuf_bcopyin
,
sbuf_bcpy
, sbuf_cat
,
sbuf_copyin
, sbuf_cpy
,
sbuf_printf
, sbuf_vprintf
,
sbuf_putc
, sbuf_trim
,
sbuf_overflowed
,
sbuf_finish
, sbuf_data
,
sbuf_len
, sbuf_done
,
sbuf_delete
—
??????ʸ?????ե????ޥå?
<sys/types.h>
<sys/sbuf.h>
struct sbuf *
sbuf_new
(struct
sbuf *s, char *buf, int
length, int flags) void
sbuf_clear
(struct sbuf *s)
int
sbuf_setpos
(struct sbuf *s,
int pos) int
sbuf_bcat
(struct sbuf *s,
const void *buf, size_t len)
int
sbuf_bcopyin
(struct sbuf *s,
const void *uaddr, size_t len)
int
sbuf_bcpy
(struct sbuf *s,
const void *buf, size_t len)
int
sbuf_cat
(struct sbuf *s,
const char *str) int
sbuf_copyin
(struct sbuf *s,
const void *uaddr, size_t len)
int
sbuf_cpy
(struct sbuf *s,
const char *str) int
sbuf_printf
(struct sbuf *s,
const char *fmt, ...)
int
sbuf_vprintf
(struct sbuf *s,
const char *fmt, va_list ap)
int
sbuf_putc
(struct sbuf *s,
int c) int
sbuf_trim
(struct sbuf *s)
int
sbuf_overflowed
(struct sbuf
*s) void
sbuf_finish
(struct sbuf *s)
char *
sbuf_data
(struct sbuf *s)
int
sbuf_len
(struct sbuf *s)
int
sbuf_done
(struct sbuf *s)
void
sbuf_delete
(struct sbuf
*s)
sbuf
?ե??ߥ??δؿ??ϡ??????ͥ????????ζ????Τ????̥뽪üʸ?????Ρ?
?????ʳ??????ơ????ۡ??????Ӳ???????ǽ?ˤ??ޤ???
???????δؿ??ϡ?ʸ?????????????????ˡ?
<sys/sbuf.h>
????????????
sbuf
?ȸƤФ??빽¤?Τ?????ޤ???
sbuf_new
()
?ؿ??Ϻǽ??ΰ????ǻؤ?????
sbuf ???????????ޤ???
???Υݥ??? NULL
?ξ????ˤϡ? sbuf_new
() ??
struct sbuf ??¤?Τ?
malloc(9)
?????Ѥ??Ƴ??????Ƥޤ??? buf
?????ϼºݤ?ʸ????Ǽ???????Хåե??ؤΥݥ??ǡ?
NULL
?ξ????ˤϡ?
sbuf_new
() ??
malloc(9)
?????Ѥ??ƥХåե??????????Ƥޤ???
length
?ϳ?Ǽ?Хåե??ν??????礭???Ǥ???
4 ???ܤΰ??? flags
?ϰʲ??Υե饰???鹽?????????ޤ?:
SBUF_FIXEDLEN
- ??Ǽ?Хåե??Ͻ??????????Ǹ????Ǥ???
???????ۤ??? sbuf
????ĥ???褦?Ȥ????ȡ??????Хե??????֤Ȥʤ??ޤ???
SBUF_AUTOEXTEND
- ?????ϡ??ɲåǡ????γ?Ǽ?Τ?????ɬ?פʤ??С?
?ε????¤??ˤ????ơ???Ǽ?Хåե??ϳ?ĥ??ǽ?Ǥ??뤳?Ȥ??ޤ???
buf ?? NULL
?Ǥʤ??????ˤϡ????ʤ??Ȥ?
length
ʸ???ʾ??????????ؤ??ʤ????Фʤ??ʤ????Ȥ????դ??Ƥ?????????
sbuf
?ˤ??äƻ??Ѥ????Ƥ????֤?ľ?ܤ????????˥??????????뤳?Ȥη??̤?
̤?????Ǥ???
sbuf_delete
()
?ؿ??? sbuf
?ꥢ???ơ????Τ????˳??????Ƥ??줿???ƤΥ??????????????ޤ???
???Ƥ? sbuf_new
()
?ؤθƤӽФ??Τ?????
sbuf_delete
()
?θƤӽФ????ʤ????Фʤ??ޤ?????
???????줿???? sbuf
?ؤ????ƤΥ????????λ??ߤϼ??Ԥ??ޤ???
sbuf_clear
()
?ؿ??? sbuf
?????Ƥ?̵???ˤ??????֤? 0
?˥ꥻ?åȤ??ޤ???
sbuf_setpos
()
?ؿ??? sbuf ?ν?λ???֤???0
?ȳ?Ǽ?Хåե????礭???????? 1
???????ͤδ֤??ͤǤ???
pos ?????ꤷ?ޤ???
???̤Ȥ??ơ??????????֤ˤ????? sbuf
????ü???ڤ??ΤƤ뤳?Ȥˤʤ??ޤ???
sbuf_bcat
()
?ؿ??ϥХåե? buf
?κǽ??? len ?Х??Ȥ?
sbuf ???ɲä??ޤ???
sbuf_bcopyin
()
?ؿ??????????줿?桼?????֥??ɥ쥹????
sbuf ?? len
?Х??Ȥԡ????ޤ???
sbuf_bcpy
()
?ؿ??? sbuf
?????Ƥ??Хåե? buf
?κǽ??? len
?Х??Ȥ??֤??????ޤ???
sbuf_cat
()
?ؿ??? NUL ʸ???ǽ?ü???줿ʸ????
str ?? sbuf
?θ??߰??֤??ɲä??ޤ???
sbuf_copyin
()
?ؿ??? NUL
ʸ???ǽ?ü???줿ʸ?????????????줿?桼?????֥??ɥ쥹????
sbuf ?˥??ԡ????ޤ???
len ?????? 0 ?Ǥʤ??????ˤ?
len ʸ?????ۤ??ʤ?ʸ??
(??ü?? NUL ?Ͽ????ޤ???) ?????ԡ????졢
?????Ǥʤ??????ˤ?ʸ???????Ρ??ޤ???
sbuf
?˵ͤ????ळ?Ȥ?????????????ʸ???ԡ????ޤ???
sbuf_cpy
()
?ؿ??? sbuf ?????Ƥ? NUL
ʸ???ǽ?ü???줿ʸ????
str ???֤??????ޤ??? ?????Ͽ?????
sbuf ?ǡ??ޤ???
sbuf_clear
() ??
sbuf_setpos
() ?Ǥ??ΰ??֤? 0
?˥ꥻ?åȤ????Ƥ??? sbuf
?ǡ? sbuf_cat
()
???ƤӽФ????Ȥ??????Ǥ???
sbuf_printf
()
?ؿ??? fmt
?ˤ??äƻؤ????Ƥ????ե????ޥå?ʸ?????˽??äƤ??ΰ??????ե????ޥåȤ???
???η??̤?ʸ?????? sbuf
?θ??߰??֤??ɲä??ޤ???
sbuf_vprintf
()
?ؿ??? sbuf_printf
()
??Ʊ?ͤ˿??ޤ???????????????Ĺ?????ꥹ??
ap
?????????????뤳?Ȥ??㤤?ޤ???
sbuf_putc
()
?ؿ???ʸ?? c ?? sbuf
?θ??߰??֤??ɲä??ޤ???
sbuf_trim
()
?ؿ????????ζ????? sbuf
????????ޤ???
sbuf_overflowed
()
?ؿ??? sbuf
???????Хե??????Ƥ????????? 0
?ʳ????ͤ??֤??ޤ???
sbuf_finish
()
?ؿ??? sbuf
???̥??ǽ?ü?????????ʾ?
sbuf_setpos
(), sbuf_cat
(),
sbuf_cpy
(), sbuf_printf
()
?ޤ??? sbuf_putc
()
?????Ѥ??ƽ????????뤳?Ȥ?̵?????Ȥ???̣???봰λ?ޡ??????դ??ޤ???
sbuf_data
()
??????
sbuf_len
()
?ؿ??Ϥ??줾?츽?ߤ?ʸ?????Ȥ???Ĺ?????֤??ޤ???
sbuf_data
() ?ϴ?λ????
sbuf
???Ф??ƤΤߵ?ǽ???ޤ???
sbuf_done
()
?Ϥ??? sbuf ????λ?????????ˤϡ?0
?Ǥʤ??ͤ??֤??ޤ???
??????? sbuf
???Хե??????????????ˤϡ?????
sbuf ?? sbuf_finish
()
?????Ѥ??ƴ?λ?????????롢?ޤ???
sbuf_clear
()
?????Ѥ??ƥꥻ?åȤ????롢?ޤ???
sbuf_setpos
()
?????Ѥ??Ƥ??ΰ??֤? 0
??????Ǽ?Хåե????礭?????? 1
???????ͤޤǤ??ͤ?
?ꥻ?åȤ????롢?ޤ???
sbuf_cpy
()
?????Ѥ??ƽ?ʬ??û??ʸ?????˽????????????ޤǤδ֤ϡ?????³???ۤȤ??ɤΤ???
sbuf
???Ф????????ϼ??Ԥ????Ǥ??礦??
sbuf_new
()
?ϳ?Ǽ?Хåե??γ??????Ƥ˼??Ԥ????????ˤ?
NULL
???֤????????Ǥʤ??????ˤϿ?????
sbuf
?ؤΥݥ????֤??ޤ???
sbuf_setpos
()
?? pos ???????ʾ????ˤ? -1
???֤????????Ǥʤ??????ˤ? 0
???֤??ޤ???
sbuf_cat
(),
sbuf_cpy
(), sbuf_printf
(),
sbuf_putc
(), sbuf_trim
()
?????ƥХåե????????Хե????????????ˤ?
-1 ???֤??? ?????Ǥʤ??????ˤ? 0
???֤??ޤ???
sbuf_overflowed
()
?ϥХåե????????Хե??????Ƥ????????ˤ?
0 ?ʳ????ͤ??֤??? ?????Ǥʤ??????ˤ? 0
???֤??ޤ???
sbuf_data
()
??????
sbuf_len
()
?ϥХåե????????Хե??????Ƥ????????ˤϡ????줾??
NULL
?????? -1 ???֤??ޤ???
sbuf
?ե??ߥ??δؿ??? FreeBSD 4.4
?ǤϤ??????о줷?ޤ?????
sbuf
?ե??ߥ??δؿ??? Poul-Henning
Kamp ⟨phk@FreeBSD.org⟩ ???߷פ???
Dag-Erling Smørgrav
⟨des@FreeBSD.org⟩ ?????????ޤ?????
?ɲäβ??ɤ? Justin T. Gibbs
⟨gibbs@FreeBSD.org⟩ ?????Ƥ??ޤ?????
??ư??ĥ???ݡ??Ȥ? Kelly
Yancey ⟨kbyanc@FreeBSD.org⟩
???ɲä??ޤ?????
???Υޥ˥奢???ڡ?????
Dag-Erling Smørgrav
⟨des@FreeBSD.org⟩ ???ޤ?????