当前位置:  技术问答>linux和unix

read()和fread()

    来源: 互联网  发布时间:2016-08-09

    本文导语:  fread()等函数是属于C标准库函数,而read()等是系统提供的函数 怎么理解阿?好像read()也是C库中的函数阿? fread()最终是调用read()进行IO读,而read()是直接调用系统内核函数? 为什么又说read()是系统提供的函数? 谢谢...

fread()等函数是属于C标准库函数,而read()等是系统提供的函数

怎么理解阿?好像read()也是C库中的函数阿?
fread()最终是调用read()进行IO读,而read()是直接调用系统内核函数?
为什么又说read()是系统提供的函数?

谢谢

|
这里有两个概念,一个是系统调用,一个是标准库函数。前者是通过函数调用,使操作系统内核工作,比如读写文件,是由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。一般遵循POSIX标准。

标准库函数是C语言标准(比如ANSI C)规定的C语言必须支持的函数。在任何C语言编绎环境中都需要支持的,比如fread在VC、gcc、bcb、TC中都会支持。但不同的编译平台或操作系统实现机理不同,在Windows下一般通过封装Win32 API实现(可以理解为Windows的系统调用),在Linux或其它类UNIX系统中一般通过系统调用实现。



|
系统不提供,用户怎么用呢?

read应该不在C标准库里,这个是很底层的一个io操作。
fread是C标准库里定义的这么一个函数,在read上还实现了缓冲等机制。

|
read不是在c标准库里
read的头文件是#include
#include
#include
而fread的头文件是#include

|
fread是各种操作系统都有的,而且用法都一样。
read就不同了,一般linux/unix都有,但是好像windows就没有

|
read是系统底层的东东,fread是C标准库的东东
标准库里的函数肯定是要调用底层的系统函数才能实现功能的

|

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 read():读取字条符
  • 系统启动问题(read block from filesystem resulted in short read!)在线等!!!
  • java命名空间javax.swing类progressmonitorinputstream的类成员方法: read定义及介绍
  • 请教: read一个socket, read返回需要多长时间?
  • java命名空间java.sql接口connection的类成员方法: transaction_read_uncommitted定义及介绍
  • read一个socket, 发现read到的长度是0, 是否一定代表对方调用了close关闭了socket?
  • java命名空间java.io类objectinputstream的类成员方法: readfully定义及介绍
  • if( (n=Readline( sockfd,line,MAXLINE) )==0)为什么服务器接收到客户FIN时,Read返回的是0。,既然FIN被读出来了,为什么Read返回的是0
  • java命名空间java.io类linenumberreader的类成员方法: read定义及介绍
  • 非阻塞打开设备文件,如果1秒read不到数据,想让read退出如何做?
  • java命名空间java.io接口objectinput的类成员方法: read定义及介绍
  • linux 下的read命令重定向
  • java命名空间java.io类objectinputstream的类成员方法: read定义及介绍
  • socket read返回问题
  • java命名空间java.nio.channels类filechannel.mapmode的类成员方法: read_write定义及介绍
  • oracle iis7站长之家
  • java命名空间java.io类filterinputstream的类成员方法: read定义及介绍
  • cshell脚本中read的问题
  • java命名空间java.text类attributedcharacteriterator.attribute的类成员方法: reading定义及介绍
  • 我的模块的READ没有被调用
  • java命名空间java.nio.channels类filechannel.mapmode的类成员方法: read_only定义及介绍
  • 关于shell read命令


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3