文件描述符和文件流之间的转换

news/2024/7/5 10:43:43

文件描述符和文件流之间的转换

  345人阅读  评论(0)  收藏  举报
stream file socket

 FILE *fdopen(int fildes, const char *type); 
这个函数很有用的,功能是将一个流关联到一个打开的文件号filedes上,
该filedes可以是open、pipe、dup、dup2和creat等调用返回的结果
type指定流打开方式,同fopen的打开方式,如"a", "r","w"等等

fdopen的流打开方式服从filedes的打开方式,比如filedes的open指定O_RDONLY,那么fdopen也只能指定"r"的打开方式了。 


用fdopen的好处很明显,如果你不得已只能打开文件号,比如socket或者dup调用,但又想用fprintf,fscanf等流操作来进行读写,那么就再fdopen一次好了。 

int fileno(FILE stream); 
用 fileno有什么好处呢?你用fopen打开了文件,但是又想用flock或者lockf来给文件加锁,或者用fcntl来进行某些底层的操作,但上述 这些函数只能对打开的文件号操作,而不能对打开流,这时候就用fileno再flock、lockf、fcntl好了。


http://www.niftyadmin.cn/n/2525435.html

相关文章

Unity Shader PostProcessing - 2 - 边缘检测

边缘检测的算法有很多种 这里介绍的是其中的一部分 SobelPrewittRobertLine 这些卷积核,都是final g越大,越可能是边缘 Sobel (-1,1), (0,1), (1,1)与(-1,-1),(0,-1),(1,-1)的亮度差距越大,特别是左右、上下的差异越大,则final…

switch表达式类型

switch表达式类型 一般格式: switch (表达式) { case 常量标号1:语句序列1; break; case 常量标号2:语句序列2; break; … case 常量标号n:语句序列n; break; default: 语句S; &…

iOS开发系列之运动事件

前面我们主要介绍了触摸事件以及由触摸事件引出的手势识别,下面我们简单介绍一下运动事件。在iOS中和运动相关的有三个事件:开始运动、结束运动、取消运动。 监听运动事件对于UI控件有个前提就是监听对象必须是第一响应者(对于UIViewController视图控制器…

C语言 side effect 和 sequence point

C语言 side effect 和 sequence point 2011-09-18 16:16 126人阅读 评论(0) 收藏 举报语言cobject编译器functionfileC 语言中,术语副作用(side effect)是指对数据对象或者文件的修改。例如,以下语句 var 99;的副作用是把…

L3-005. 垃圾箱分布

L3-005. 垃圾箱分布 题目链接:https://www.patest.cn/contests/gplt/L3-005 Dijstra 与L2-001.紧急救援类似,是Dijstra最短路的拓展,要注意排序是按照: 1.到所有居民点的最小距离的最大; 2.平均距离最短; 3…

java-对象的理解-对象在内存的存储

String str; 这段代码表示创建一个名叫str的String类型的reference。 这个reference保存在栈stack中,速度很快,但它并没有保存词或者句子的数据,它仅仅是目标数据的一个指向。 如果此时向str发送一个消息,就会返回一个运行时错误&…

怎么设置自定义Tabbar的文字大小 -------ios

系统默认的tabbar感觉好小,很丑,于是得自己来设置它的大小 我们需要在 (void)load 或者在 (void)initialize 里设置 那这两个方法有什么区别呢 可以看这里 :(转载)http://www.jianshu.com/p/9368ce9bb8f9 我们在这里…

删除两个双向循环链表的相同节点

删除两个双向循环链表的相同节点 分类: Data Structure 面试题集2011-09-23 12:37 1242人阅读 评论(1) 收藏 举报nulldeletestructsystemc有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一个函数…