当前位置:嗨网首页>书籍在线阅读

24-获取关联的文件描述符

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.12 获取关联的文件描述符

在某些情况下,获得指定流的文件描述符是很方便的。例如,当不存在和流关联的标准I/O函数时,可以通过其文件描述符对该流执行系统调用。为了获得和流关联的文件描述符,可以使用fileno()函数:

120.png 成功时,fileno()返回和指定stream关联的文件描述符。失败时,返回-1。只有当指定流非法时,才会失败,这时fileno()函数会将errno值设置为EBADF。

通常,不建议混合使用标准I/O调用和系统调用。当使用fileno()函数时,编程人员必须非常谨慎,确保基于文件描述符的操作和用户缓冲没有冲突。尤其值得注意的是,在操作和流关联的文件描述符之前,最好先对流进行刷新(flush)。记住,最好永远都不要混合使用文件描述符和基于流的I/O操作。