CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

fopen与_open什么区别?

楼主Lansie(山河水)2002-06-20 20:30:26 在 VC/MFC / 基础类 提问

各有什么有缺点?多谢! 问题点数:20、回复次数:3Top

1 楼friarchen(山间有雾)回复于 2002-06-20 20:56:25 得分 7

相同点就是都是对文件打开进行操作的。  
  不同点有:  
  1.   open是系统调用,fopen是函数调用  
  2.   open是不带缓冲的,fopen是带缓冲的  
  3.   open频繁操作时速度慢,fopen操作后需要刷新才更新数据Top

2 楼bbird(随风鸟)回复于 2002-06-20 20:57:54 得分 5

FILE   *fopen(   const   char   *filename,   const   char   *mode   );  
  int   _open(   const   char   *filename,   int   oflag   [,   int   pmode]   );  
  用open一般跟fstat函数可以一次将文件的类容搞定。  
   
  int   bsz;  
  struct   stat   fst;  
  char   *cbuf;  
          int   fd,   rc;  
          fd   =   open(filename,   O_RDONLY,   0);  
    rc   =   fstat(fd,   &fst);  
  cbuf   =   (char   *)calloc(1,   fst.st_size   +   1);  
  bsz   =   read(fd,   cbuf,   fst.st_size);  
    cbuf[bsz]='\0';  
          close(fd);  
   
  很快就将文件类容读入到cbuf中了。(判断语句自己加吧:))  
   
   
  Top

3 楼batizhou(batizhou)回复于 2002-06-20 21:00:17 得分 8

没有太大的区别,也没有什么缺点  
  fopen返回的是FILE*   which   is   a   stream  
  _open返回的是int   which   is   a   runtime   file   handle  
   
  你可以:  
  fd   =   _open(...);  
  FILE   *   f   =   _fdopen(fd,   ...);  
   
  效果和fopen一样  
   
  _open的出现是为了兼容UNIX的POSIX标准  
  Top

相关问题

  • 什么区别?
  • 有什么区别?
  • 有什么区别?
  • MFC提供的CFile类和传统的Stream I/O函数fopen,fwrite等有什么实质的区别?
  • 我想问一下,open ssh和ssh有什么区别?!
  • ADOStoredProc 中的Open 和 ExecProc 有什么区别? 在线等
  • ClientDataSet组件的Refresh,close,open,applyupdates之间的区别是什么?
  • show, showmodal有什么区别?
  • ->和.有什么区别
  • BYTE 和 byte 什么区别??

关键词

  • 文件
  • fopen
  • cbuf
  • bsz
  • fst
  • fd
  • open
  • filename
  • const
  • char

得分解答快速导航

  • 帖主:Lansie
  • friarchen
  • bbird
  • batizhou

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo