使用两个函数,可以轻松实现两者的转换关系,这在一些场合(有时候用流式函数方便,但有时候有需要用文件描述符函数做些底层工作)还是很有用的。
int fileno(FILE *stream);
The function fileno examines the argument stream and returns its integer descriptor.
FILE *fdopen(int fildes, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
使用的时候,还是有些注意点的~
fdopen 函数,将一个文件指针与 fildes 的文件描述符相联系, mode 参数的值( "r", "r+", "w", "w+", "a", "a+")),要与 fildes 所代表文件的读写权限一致
在 fdopen 里设置 "w" "w+" 并不会象 fopen 那样,截断已存在的数据,还是会接着尾端写。