转:fopen与open可以转换吗
2016-03-09 11:48
399 查看
绝对不可以。fopen是C运行库级别的函数,而open是system call的wrapper routine。fopen返回FILE *的指针,这个结构本身维护着一些关于这个文件的信息,而open返回的是这个被打开的文件的id,这个id是内核来维护的。这两个东西根本不是一码事, 其中FILE结构倒是记录着这个文件的id。除此之外,fopen这个级别的文件操作函数(比如fread、fwrite)在用户态又实现了一级 cache,比如说你用fwrite向文件里写一个字节,一般来讲它不会立刻调用write将该操作提交给kernel,而是积累到一定程度再一起写。所 以这两个函数是不同级别的,不能混用。
相关文章推荐
- Linux安装ElasticSearch-2.2.0-分词器插件(IK)
- linux 链接ln的使用 创建和删除符号连接(软、硬链接)
- nginx学习(2) - 静态资源分离
- Autofac和nopcommerce中的Autofac, 还有反射
- linux命令行参数解析学习心得
- Gnu/Linux系统C编程之 -- 用户和组
- 初步认识Hadoop
- 启动squid的时候提示 Failed ,FATAL: No port defined
- linux用户登陆显示:could not open session .
- Linux与JVM的内存关系分析
- 【OpenStack】OpenStack系列17之OpenStack私有云设计二
- 使用Grafana结合Zabbix进行监控图表展示
- Linux-centos7防火墙问题
- 正向代理与反向代理
- 校园网&openwrt记(十三)断网重连的循环版本
- 追踪openvswitch对特定数据报文的流表匹配与处理结果的实例
- 介绍WPF中DependencyProperty的一些基本用法
- 深入理解RunLoop
- Nginx由于TLS支持版本配置过低造成不能够正常访问Upstream服务器的问题
- (9)rocketMQ3.2.6 单机安装 及 web界面监控 部署