Linux C IO编程学习笔记(第一天:标准IO)
来源:互联网 发布:linux 网卡物理地址 编辑:程序博客网 时间:2024/05/29 11:51
首先说一下输入输出的概念,所谓的输入输出就是相对于程序而言的,凡是讲数据输送到程序中的过程就是输入,相反就是输出
然后,在linux中的IO分为两种,一种是文件io:是由内核提供的,比较简洁,低级IO,没有缓存,另一种是标准IO:是由标准C库提供,功能复杂高级IO,有缓存
那么缓存可分为以下几种:1.行缓冲:系统不多见,多用于跟用户交互,当一行满的时候刷新缓冲,一行以\n结束
2.满缓冲:当满的时候才刷新缓冲
3.无缓冲
1.文件流只关心流向,不关心大小,格式
2.系统流:stdin,stdout,stderr
标准IO函数
1.linux系统中的IO函数有两种:文件IO和标准IO,其中文件IO是由kernel提供的,而标准IO则是由C库提供的
2.其中,文件IO没有缓冲,而标准缓冲是有缓冲的,请看代码:
/*************************************************************************> File Name: test.c> Author: Baniel Gao> Mail: createchance@163.com > Blog: blog.csdn.net/createchance > Created Time: Wed 25 Dec 2013 06:56:18 PM CST ************************************************************************/#include <stdio.h>int main(void){printf("hello world");while(1);return 0;}那么,这里的hello>/*************************************************************************> File Name: test.c> Author: Baniel Gao> Mail: createchance@163.com > Blog: blog.csdn.net/createchance > Created Time: Wed 25 Dec 2013 06:56:18 PM CST ************************************************************************/#include <stdio.h>int main(void){printf("hello world");fflush(stdout);while(1);return 0;}
这样的话,hello world就能显示了,其实我们还可以修改缓冲区的特性。前面说过,缓冲区分为三中,在与用户交流的shell中,他的缓冲是行缓冲,必须等一行的结束也就是\n才能输出,所以可以使用加上\n的方法显示字符串。其实我们可以使用setbuf函数将缓冲区修改为无缓冲:
/*************************************************************************> File Name: test.c> Author: Baniel Gao> Mail: createchance@163.com > Blog: blog.csdn.net/createchance > Created Time: Wed 25 Dec 2013 06:56:18 PM CST ************************************************************************/#include <stdio.h>int main(void){printf("hello world");setbuf(stdout, NULL);while(1);return 0;}
这里的setbuf函数的原型是:
void setbuf(FILE *stream, char *buf);
也就是讲缓冲区重定向为buf指向的区域中,如果我们将这个区域指向为NULL,那么也就是没有缓冲了!!其实也可以使用setvbuf函数,他可以将缓冲区设置为行缓冲,块缓冲,无缓冲,具体的使用方法请MAN
0 0
- Linux C IO编程学习笔记(第一天:标准IO)
- Linux+C学习笔记之IO编程
- linux编程-标准IO
- Linux标准IO编程
- c++primer学习笔记 ( 第八章 标准IO库)
- C++Primer学习笔记(8)标准IO库
- c语言学习笔记(标准文件io)
- linux系统编程之基础必备(二):C 标准IO 库函数与Unbuffered IO函数
- linux系统编程之基础必备(二):C 标准IO 库函数与Unbuffered IO函数
- Linux编程-标准IO(2)
- Linux编程-标准IO(3)
- Linux编程-标准IO(4)-临时文件
- 第一章Linux标准IO编程
- linux文件系统编程 标准IO
- Linux文件---标准IO编程
- Linux学习(十五):标准IO
- c 学习笔记之 c IO标准库函数
- linux编程学习笔记(七) 文件IO
- IOS学习笔记---UIKit之UILable
- js相关问题的解决方案
- 正确使用Qt多线程
- 黑马程序员_Java基础加强之JDK1.5的新特性
- 哥来了
- Linux C IO编程学习笔记(第一天:标准IO)
- 黑马程序员_7k面试题之交通灯管理系统
- C++的一些小知识点
- php利用反射真正实现多继承(非接口模拟)
- 取本周日期 C# .net
- 聊天室服务分析设计
- Linux的 标准GPIO及中断API函数
- dataguard搭建实验
- IOS学习笔记56-IOS7状态栏适配方法一