̾??
fopen
, fdopen
,
freopen
—
???ȥ?????ץ??ؿ?
Standard C Library (libc, -lc)
<stdio.h>
FILE *
fopen
(const
char *path, const char *mode)
FILE *
fdopen
(int fildes,
const char *mode) FILE *
freopen
(const char *path,
const char *mode, FILE
*stream)
fopen
() ?ؿ??ϡ?
path
???ؤ?ʸ??????̾???????ĥե????????ץ?
?????˥??ȥ??????Ϣ?դ??ޤ???
???? mode
?ϡ??ʲ??Υ??????? 1
?ĤǻϤޤ?ʸ???????ؤ??ޤ?
(???Υ??????ˤϡ??̤Υ????饯????³???Ƥ???ޤ???)??
- “
r
”
- ?ƥ????ȥե????????ɹ????Ѥ˥????ץޤ???
???ȥ???ϡ??ե??????κǽ??˰????դ??????ޤ???
- “
r+
”
- ?ɹ????ѤȽ??????Ѥ˥????ץޤ???
???ȥ???ϡ??ե??????κǽ??˰????դ??????ޤ???
- “
w
”
- ???????Ѥˡ??ե???????Ĺ?? 0
???ڤ??Ĥ??뤫???ƥ????ȥե??????????????ޤ???
???ȥ???ϡ??ե??????κǽ??˰????դ??????ޤ???
- “
w+
”
- ?ɹ????ѤȽ??????Ѥ˥????ץޤ???
?ե????뤬¸?ߤ??ʤ??????Ϥ??Υե????뤬???????졢
¸?ߤ??????????ڤ??Ĥ??????ޤ???
???ȥ???ϡ??ե??????κǽ??˰????դ??????ޤ???
- “
a
”
- ???????Ѥ˥????ץޤ???
?ե????뤬¸?ߤ??ʤ??????Ϥ??Υե????뤬?????????ޤ???
???ȥ???ϡ??ե??????κǸ??˰????դ??????ޤ???
??????³???ե??????ؤν??ߤϡ?
fseek(3)
?Τ褦???????β??ߤ˴ؤ????ʤ???
???˥ե??????θ??????ǤκǸ??ؤȹԤ????ޤ???
- “
a+
”
- ?ɹ????ѤȽ??????Ѥ˥????ץޤ???
?ե????뤬¸?ߤ??ʤ??????Ϥ??Υե????뤬?????????ޤ???
???ȥ???ϡ??ե??????κǸ??˰????դ??????ޤ???
??????³???ե??????ؤν??ߤϡ?
fseek(3)
?Τ褦???????β??ߤ˴ؤ????ʤ???
???˥ե??????θ??????ǤκǸ??ؤȹԤ????ޤ???
mode ʸ?????ˤϡ?3
???ܤ?ʸ???Ȥ??ơ? ?ޤ??Ͼ??????????? 2
ʸ???????ʤ?ʸ?????δ֤˻??ꤹ??ʸ???Ȥ??ơ?
ʸ?? ``b'' ???ޤ??뤳?Ȥ??Ǥ??ޤ???
?????? ISO/IEC 9899:1990
(“ISO C90”)
?Ȥθߴ??????ݤĤ????Τ??Τǡ????̤Ϥ????ޤ?????
``b'' ??̵?뤵???ޤ???
???????줿?ե??????Υ⡼?ɤϡ?
"S_IRUSR
| S_IWUSR
|
S_IRGRP
| S_IWGRP
|
S_IROTH
| S_IWOTH
"
(0666
) ???ץ??????? umask ?? (
umask(2)
????) ?ǽ??????줿???Τˤʤ??ޤ???
?ɤ߽??ȥ???Ǥϡ??ɹ??ߤȽ????ߤ??ɤΤ褦?ʽ????Ǥ?
?????뤳?Ȥ??Ǥ??????С?????????
stdio
?Τ褦?ˡ????????δ֤˥???????????ɬ?פ????ޤ?????
???????ʤ??顢??????¾?Υ????ƥ??ؤΰܿ??????????ޤ?????
?Ȥ????Τϡ? ANSI C
?ϡ????ϥ??ڥ졼?????ե??????ν?λ??ã???Ƥ??ʤ????硢
?ե??????????դ??ؿ??????Ϥ????Ϥδ֤?
???ߤ??뤳?Ȥ??ᤷ?Ƥ??뤫???Ǥ???
fdopen
()
?ؿ??ϡ???¸?Υե????뵭?һ?
fildes
?˥??ȥ??????Ϣ?դ??ޤ???
???ȥ???? mode
?ˤϡ??ե????뵭?һҤΥ⡼?ɤȤθߴ?????ɬ?פǤ???
fclose(3)
?ˤ??äƥ??ȥ?ब?Ĥ????줿???ˤϡ?
fildes ???Ĥ??????ޤ???
freopen
()
?ؿ??ϡ? path
???ؤ?ʸ??????̾?????դ????ե?????????
stream
???ؤ????ȥ??????Ϣ?դ??ޤ???
???Υ??ȥ?ब¸?ߤ??????硢???????Ĥ??????ޤ???
mode ?????ϡ? fopen
()
?ؿ???Ʊ???Ǥ??? freopen
()
?μ??ʻ?????Ū?ϡ?ɸ???ƥ????ȥ??ȥ??
(stderr,
stdin
stdout)
?˴?Ϣ?դ????줿?ե??????????ؤ??뤳?ȤǤ???
?ƤӽФ????????????ȡ?
fopen,
()
fdopen,
()
freopen
() ?? FILE
?ݥ????֤??ޤ??? ???꤬??????????
NULL
???֤??????Υ??顼???ͤ????Х??ѿ?
errno ?????ꤷ?ޤ???
- [
EINVAL
]
fopen
(), fdopen
(),
freopen
() ?? mode
?????????????ޤ?????
fopen
(),
fdopen
(), freopen
()
?ؿ??ϡ????顼??ȯ???????ȡ??롼????
malloc(3)
?ǵ??ꤵ?줿???顼?? errno
?????ꤹ?뤳?Ȥ⤢???ޤ???
fopen
()
?ؿ??ϡ????顼??ȯ???????ȡ??롼????
open(2)
?ǵ??ꤵ?줿???顼?? errno
?????ꤹ?뤳?Ȥ⤢???ޤ???
fdopen
()
?ؿ??ϡ????顼??ȯ???????ȡ??롼????
fcntl(2)
?ǵ??ꤵ?줿???顼?? errno
?????ꤹ?뤳?Ȥ⤢???ޤ???
freopen
()
?ؿ??ϡ????顼??ȯ???????ȡ??롼????
open(2),
fclose(3),
fflush(3)
?ǵ??ꤵ?줿???顼?? errno
?????ꤹ?뤳?Ȥ⤢???ޤ???
fopen
() ?ؿ???
freopen
() ?ؿ??ϡ?
ISO/IEC 9899:1990 (“ISO C90”)
??Ŭ?礷?Ƥ??ޤ??? fdopen
()
?ؿ??ϡ? IEEE Std 1003.1-1988
(“POSIX.1”)
??Ŭ?礷?Ƥ??ޤ???