依睛(IT blog) 我回来了,PHP<-->C/C++ LINUX

笨鸟

统计

积分与排名

友情连接

最新评论

fileno

以前学习过通过文件指针完成文件的读写。函数fopen()就是返回打开文件的指针。其实文件描述符和文件指针是可以互相转换的。这要通过fdopen和fileno两个函数实现。它们都包含在头文件stdio.h中。先看fdopen的原型:
   FILE * fdopen(int filedes, const char *opentype);
   第一个参数filedes是一个打开的文件描述符,opentype是表示打开方式的字符串,和fopen函数具有相同的取值,比如"w"或"w+"等。但是你必须保证该字符串的描述和文件实际的打开方式是匹配的。
   文件返回一个新的文件流(stream)的指针。如果操作失败,返回空指针null。
   把文件流指针转换成文件描述符用fileno函数,其原型为:
   int fileno(FILE *stream);
   它返回和stream文件流对应的文件描述符。如果失败,返回-1。

   以前知道,当程序执行时,就已经有三个文件流打开了,它们分别是标准输入stdin,标准输出stdout和标准错误输出stderr。和流式文件相对应的是,也有三个文件描述符被预先打开,它们分别是0,1,2,代表标准输入、标准输出和标准错误输出。
   需要指出的是,上面的流式文件输入、输出和文件描述符的输入输出方式不能混用,否则会造成混乱。所以上面的函数使用的机会并不多。以后会讲到使用的场合。

posted on 2009-01-17 18:15 向左向右走 阅读(1499) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。