文件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. Linux开源模块迁移概述暨交叉编译跨平台移植总结--从《嵌入式Linux驱动模板简洁和工程实践》

    本文摘录<嵌入式Linux驱动模板简洁和工程实践>一本书"开发和调试技术". Linux强大的是,有那么多的开源项目可以使用.通常非常需要可以通过寻找相关的源模块被定义 ...

  2. ckplayer

    ckplayer 的使用基本功能实现(一) 有个项目里用到视频播放功能,虽然是国产的插件,但我觉得做的还是不错,而且是免费使用,顺便支持下国内的一些项目(O(∩_∩)O~). 一.首先去官网下载 插件 ...

  3. 4行代码实现js模板引擎

    在平时编码中,经常要做拼接字符串的工作,如把json数据用HTML展示出来,以往字符串拼接与逻辑混在在一起会让代码晦涩不堪,加大了多人协作与维护的成本.而采用前端模板机制就能很好的解决这个问题. 精妙 ...

  4. HTTP2协议之HPACK--之头部压缩规范介绍

    接下来打算把HTTP2协议的头部压缩算法给翻译下,敬请等候. HPACK - Header Compression for HTTP/2 HPACK:HTTP/2头部压缩 概要说明 这个规范定义了HP ...

  5. - C#编程大幅提高OUTLOOK的邮件搜索能力!

    原文:[原创] - C#编程大幅提高OUTLOOK的邮件搜索能力! 使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题 ...

  6. VS2015 Apache Cordova

    VS2015 Apache Cordova第一个Android和IOS应用   前言 本人个人博客原文链接地址为http://aehyok.com/Blog/Detail/75.html. http: ...

  7. UVA Graph Coloring

    主题如以下: Graph Coloring  You are to write a program that tries to find an optimal coloring for agiven ...

  8. 我的Android 4 学习系列

    Android 简介 开始入手 创建应用程序和Activity 创建用户界面 Intent 和 Broadcast Revicever 使用 Internet 资源 文件,保存状态和首选项 数据库和C ...

  9. centos6.4搭建apache+mysql+php环境

    最近用php做的项目到了项目部署的时候,服务器为centos6.4系统,为了快捷部署,采用yum安装部署 大部分内容参考博客  http://blog.sina.com.cn/s/blog_c02ed ...

  10. 《C语言 学生成绩管理系统》

    /* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩 ...