我是靠谱客的博主 激情画板,最近开发中收集的这篇文章主要介绍Linux系统输入i的意思,Linux I/O(输入和输出),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.文件I/O

1)文件描述符:对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件。当内核打开一个已有文件或创建一个新文件时,它返回一个文件描述符。

2)按照惯例,UNIX系统shell使用文件描述符0(STDIN_FILENO)与进程的标准输入相关联,文件描述符1(STDOUT_FILENO)与标准输出相关联,文件描述符2(STDERR_FILENO)与标准出错输出相关联。这是各种shell以及很多应用程序使用的惯例,而与UNIX内核无关。尽管如此,如果不遵照这种惯例,那么很多UNIX系统应用程序就不能正常工作。

3)可用的文件I/O函数——打开文件,读文件,写文件等。UNIX系统中的大多数文件I/O只需用到5个函数:open、read、write、lseek以及close。它们是不带缓冲的I/O,都使用文件描述符。在使用read和write函数时,选定不同大小的缓冲区(保存读和写的数据),效率是不同的。存在一个最佳效率的缓冲区大小,就是缓冲区大小等于文件系统的块长。

2.标准I/O

1)对于标准I/O库,它们的操作则是围绕流进行的。当用标准I/O库打开或创建一个文件时,使用一个流与一个文件相关联。当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针。该对象通常是一个结构,它包含了标准I/O库为管理该流所需要的所有信息,包括:用于实际I/O的文件描述符,指向用于该缓冲区的指针、缓冲区的长度、当前在缓冲区中的字符数以及出错标志等。

2)预定义了三个标准I/O流,分别为三个文件指针stdin,stdout和stderr。

3)标准I/O库提供缓冲的目的是尽可能减少使用read和write调用的次数。它对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。标准I/O提供三种类型的缓冲:全缓冲、行缓冲和不带缓冲。

3.两者的区别:

1)前者属于低级IO,后者是高级IO。

2)前者返回一个文件描述符(用户程序区的),后者返回一个文件指针。

3)前者无缓冲,后者有缓冲。

4)前者与 read, write 等配合使用,后者与 fread, fwrite等配合使用。

5)后者是在前者的基础上扩充而来的,在大多数情况下,用后者。

最后

以上就是激情画板为你收集整理的Linux系统输入i的意思,Linux I/O(输入和输出)的全部内容,希望文章能够帮你解决Linux系统输入i的意思,Linux I/O(输入和输出)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部