文件I/O:open creat close lseek read write dup dup2 sync fsync fcntl ioctl

所有函数都是针对文件描述符。

所有的都是原子操作,这个在多进程间共享文件时就显得尤为重要。

int open(const char *pathname,int flag,... /* mode_t mode*/) ;

Samples: open(pathname,O_RDWR | O_CREAT | O_TRUNC, mode);

int creat(const char *pathname,mode_t mode);

int close(int filedes);

off_t lseek(int filedes, off_t offset, int whence);

ssize_t read(int filedes, void *buf, size_t nbytes);

ssize_t write(int filedes, const void *buf, size_t nbytes);

标准I/O:FILE,

标准库都是围绕流进行的,(教训:fflush就是一种通过刷新缓冲让缓冲中的数据被读或者写)。

我现在凭记忆可以罗列的就只有:FILE结构体, fopen,fread,fwrite,fclose,fgetc,fputc,fgets,fputs,fflush.

标准IO分为全缓冲,行缓冲,不带缓冲。

全缓冲:填满缓冲后才执行IO操作。

行缓冲:输入或输出中遇到换行符时,标准库执行IO操作。

对于行缓冲有两个限制1)行的长度是有限制的,如果一行满了,即使没有换行符也会执行IO操作。

2)任何时候,从一个不带缓冲的流,或者一个行缓冲流得到输入数据,就会造成冲洗所有缓冲流。【此处,或者很误解】。

不带缓冲:字符输入输出。通常标准出错流stderr也是不带缓冲的。

高级I/O:

关于高级I/O,有太多的内容,非阻塞I/O,记录锁,STREAMS,I/O多路转换(select,pselect, poll ,epoll),异步I/O(System V ,BSD),readv,writev,readn,writen.存储映射I/O等。这些是Unix系统高级编程2里介绍的。

http://blog.csdn.net/yunsongice

linux multimedia

http://tech.ccidnet.com/art/302/20060927/911605_7.html

http://gstreamer.freedesktop.org/

深入剖析Linux I/O操作与标准I/O操作区别与联系的更多相关文章

  1. 剖析 Linux hypervisor--KVM 和 Lguest 简介

    慢慢弄清楚..   M. Tim Jones, 顾问工程师, Emulex Corp. M. Tim Jones 是一名嵌入式软件工程师,他是 Artificial Intelligence: A S ...

  2. 剖析 Linux hypervisor

    hypervisor 之于操作系统类似于操作系统之于进程.它们为执行提供独立的虚拟硬件平台,而虚拟硬件平台反过来又提供对底层机器的虚拟的完整访问.但并不是所有 hypervisor 都是一样的,这是件 ...

  3. Linux(C/C++)下的文件操作open、fopen与freopen

    open是linux下的底层系统调用函数, fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. linxu下的fopen是open的封装函数,fopen最终还是要调用底层的 ...

  4. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

  5. Linux(C/C++)下的文件操作open、fopen与freopen via Boblim

    Linux(C/C++)下的文件操作open.fopen与freopen open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. li ...

  6. 深入剖析Linux IO原理和几种零拷贝机制的实现

    深入剖析Linux IO原理和几种零拷贝机制的实现 来源 https://zhuanlan.zhihu.com/p/83398714 零壹技术栈      公众号[零壹技术栈] 前言 零拷贝(Zero ...

  7. 关于linux中的目录配置标准以及文件基本信息

    关于Linux中的目录配置标准 在查看docker.k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard ...

  8. 全方位剖析 Linux 操作系统,太全了!!!

    Linux 简介 UNIX 是一个交互式系统,用于同时处理多进程和多用户同时在线.为什么要说 UNIX,那是因为 Linux 是由 UNIX 发展而来的,UNIX 是由程序员设计,它的主要服务对象也是 ...

  9. 十天学Linux内核之第四天---如何处理输入输出操作

    原文:十天学Linux内核之第四天---如何处理输入输出操作 真的是悲喜交加呀,本来这个寒假早上8点都去练车,两个小时之后再来实验室陪伴Linux内核,但是今天教练说没名额考试了,好纠结,不过想想就可 ...

随机推荐

  1. PHP 使用用户自定义的比较函数对数组中的值进行排序

    原文:PHP 使用用户自定义的比较函数对数组中的值进行排序 usort (PHP 4, PHP 5) usort —      使用用户自定义的比较函数对数组中的值进行排序 说明       bool ...

  2. 2. SQL Server数据库状态监控 - 错误日志

    原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯 ...

  3. Android NDK进入发展

    使用互联网有很多javah命令生成一个头文件来完成JNI写,但事实上ADT集成NDK后.点点鼠标就可以了,网上的介绍是非常小懒的方法,在这里,我们主要谈论的懒惰JNI发展. 为ADT组态NDK.请个人 ...

  4. 客户端Webview重定向

    今天在客户端的网页中写了句alert的代码,发现执行了两次,后来发现网页的地址写的是http://192.168.14.72/app 客户端Webview加载网页,对于不完全路径会重定向到完全路径,导 ...

  5. ZOJ 2109 FatMouse' Trade (背包 dp + 贪婪)

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1109 FatMouse prepared M pounds of cat ...

  6. linux有用技巧:使用快照制作虚拟机

    在日常的学习其中,假设遇到了集群和负载均衡类的实验,须要用到大量的虚拟机,假设一个一个的去创建,显然是很费力和低效的.所以今天交给大家怎样用快照来制作虚拟机.想要多少给你多少^_^.仅仅要内存够用! ...

  7. Ping域名惊现65.49.2.178

    --- 昨天新建的博,早晨起来进去看看,发现无法访问.这… 排错开始,ping域名出现如上图所示结果,请求超时…哪里的问题呢 有时常识是害人的,想起了前两月群里也有人说本地无法访问自己网站,别人能访问 ...

  8. 与6lowpan最相关的RFC文档列表

    有关于6lowpan最原始的文档,请参考下面的链接与截图: http://datatracker.ietf.org/wg/6lowpan/

  9. SSIS中Sql Task 获取系统变量

    原文:SSIS中Sql Task 获取系统变量 执行 SQL 任务使用不同的连接类型时,SQL 命令的语法使用不同的参数标记.例如,ADO.NET 连接管理器类型要求 SQL 命令使用格式为 @var ...

  10. OpenCV2第一个马拉松8环——画一个柱状图

    在包里 灰度直方图 彩色直方图 葵花宝典 直方图的理论还是非常丰富的,应用也非常多,诸如: 直方图均衡化 直方图匹配(meanshift,camshift) 在这里,我先介绍基础.怎样绘制图像的直方图 ...