linux fileno函数
2014-02-25 17:23
363 查看
函数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,代表标准输入、标准输出和标准错误输出。
需要指出的是,上面的流式文件输入、输出和文件描述符的输入输出方式不能混用,否则会造成混乱。所以上面的函数使用的机会并不多。以后会讲到使用的场合。
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,代表标准输入、标准输出和标准错误输出。
需要指出的是,上面的流式文件输入、输出和文件描述符的输入输出方式不能混用,否则会造成混乱。所以上面的函数使用的机会并不多。以后会讲到使用的场合。
相关文章推荐
- Linux系统安装完Qt后,Qt无法显示菜单栏问题
- linux poen函数
- 运维工程师必会的109个Linux命令
- linux rtc驱动
- linux grep命令
- 去年12月29日,红旗Linux员工在网上发出请愿书“风雨飘摇,中科红旗路在啊何方?”,又打出横幅”软件所还我核高基专项款,大股东无视职工死活“,到工信部大门口集体请愿、讨薪,闹得很不安宁。
- Linux系统手动安装rpm包依赖关系分析(以Kernel升级为例)
- 在嵌入式Linux系统中实现USB存储设备的自动挂载
- centos6.4下编译apue.h(第二版)
- 在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)
- linux 链接脚本
- Linux文件系统之hard link&symbol link
- centos初装后并没有带上rz sz的程序。需要安装: yum install lrzsz
- windows下eclipse远程连接linux上的hadoop集群
- Linux crontab 任务调度的使用
- linux进程后台运行的几种方法
- Linux开机启动程序详解[转]
- CentOS 6.5 X64 U盘启动盘制作
- Linux环境下修改MySQL端口方法:
- Linux环境下修改MySQL端口方法: 分类: database ubuntu 测试 2014-02-25 16:42 3334人阅读 评论(0) 收藏