老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Linux中open与fopen区别是什么?老男孩Linux培训班

老男孩IT教育

行业新闻

2022年6月17日 18:35

在学习Linux的时候,不少小伙伴应该都接触过open与fopen,因为只有一个字母之差,所以很多人经常会将它们混淆在一起,那么Linux中open与fopen区别是什么?具体请看下文。

  在学习Linux的时候,不少小伙伴应该都接触过open与fopen,因为只有一个字母之差,所以很多人经常会将它们混淆在一起,那么Linux中open与fopen区别是什么?具体请看下文。

Linux运维培训班

  1、来源

  从来源的角度看,两者能很好的区分开,这也是最显而易见的区别:

  ①open是Unix系统调用函数,返回的是文件描述符,它是文件在文件描述符表里的索引;

  ②fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api。返回的是一个指向文件结构的指针。

  2、移植性

  这一点从上面的来源可以推断出来,fopen是C标准函数,因此拥有良好的移植性,而open是Unix系统调用,移植性有限。如Windows下相似的功能使用API函数CreateFile。

  3、适用范围

  ①open返回文件描述符,而文件描述符是Unix系统下的一个重要概念,Unix下的一切设备都是以文件的形式操作。如网络套接字、硬件设备等。当然包括操作普通正规文件。

  ②fopen是用来操纵普通正规文件。

  4、文件IO层次

  如果从文件IO的角度来看,前者属于低级IO函数,后者属于高级IO函数。低级和高级的简单区分标准是:谁离系统内核更近。低级文件IO运行在内核态,高级文件IO运行在用户态。

  为了让学员学以致用,老男孩教育不断更新Linux培训教学大纲,与一众讲师精心打造Linux云计算SRE课程体系。老男孩教育Linux云计算SRE运维课程,从零基础开始授课,适合零基础且对Linux感兴趣的学员学习。课程的主要目的就是培养出专业的Linux系统工程师,名师授课全程面授教学,边讲边练帮助学员高效掌握Linux技术。

  推荐阅读:

  docker优势主要有哪些?老男孩Linux云计算课程

  Linux系统中>和>>的区别是什么?老男孩Linux云计算课程

  Linux操作系统可以分为哪几类?老男孩Linux运维云计算课程

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。