计算机的基本组成:

  • 处理器
  • 主存储器
  • 输入输出模块
  • 系统总线

  • 标准C的IO输出有三种缓存类型

  • 全缓存:对于磁盘通常使用全缓存操作
  • 行缓存:终端的标准输入输出
    两种情况下航缓存会输出:1)行缓存满自动输出。2)碰到换行符自动输出
  • 无缓存
    标准作物输出通常是不带缓存的是为了错误信息能够尽快的显示出来

使用实例证明printf后面不加回车,那么行缓存将不会输出自读到屏幕上:

//程序一直运行但是没有结果输出,因为输出输入设备使用行缓存,没有换行或者输出的内容没有使行缓存满就不会输出字符到输出设备上
#include<stdio.h>int main(int argc, char* argv[])
{printf("hello iotec");while(1){sleep(1);}return 0;
}

但是Linux中POSIX标准中的函数open(),create(),close(),read(),write(),lseek()等函数是不带缓存的内核提供的系统调用函数。标准C的函数最终还是调用,内核提供的IO函数,内核函数一般用于告诉缓存的场所之中。

在C语言的库函数中提供文件描述符和文件指针之间的转换函数:
文件描述符=>转文件指针(fd=>FILE*)

FILE * fdopen(int fd, const char *mode);  函数

文件指针转文件文件描述符:
文件指针=>文件描述符

int fileno(FILE *stream);

使用open函数需要使用的头文件为:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
O_TRUNC打开文件,并将打开的文件长度截断为0,并且勇于文件要么是只读文件,要么是只写文件。
使用creat()创建的函数是只写形式打开文件 ==>open(pathname,O_WRONLY | O_CREAT | O_TRUNC,mode)

linux系统程序设计相关推荐

  1. LINUX系统程序设计中C/C++编程工具使用

    LINUX系统程序设计中C/C++编程工具使用 一.实验目的 掌握gcc编译器的使用 掌握gdb调试器的使用 掌握make工程管理器的使用 理解Makefile文件的格式,掌握Makefile文件的编 ...

  2. 嵌入式linux系统程序设计,嵌入式Linux操作系统CGI程序设计技术

    1 概述 随着互联网应用的普及,越来越多的信息化产品需要接入互联网通过Web页面进行远程访问.嵌入式Web系统提供了一种经济.实用的互联网嵌入式接入方案.这里结合一种嵌入式Web Server BOA ...

  3. 大连东软信息学院linux系统编程,大连东软信息学院Linux系统编程考试资料

    大连东软信息学院Linux系统编程考试资料 Linux系统程序设计 第1章 Linux操作系统基础 1.1 Unix/Linux操作系统简介 1.2 相关术语 1.3 库函数与系统调用 1.4 项目构 ...

  4. linux系统程序PPT,Linux 系统应用与程序设计 问题.ppt

    <Linux 系统应用与程序设计 问题.ppt>由会员分享,可在线阅读,更多相关<Linux 系统应用与程序设计 问题.ppt(14页珍藏版)>请在人人文库网上搜索. 1.Li ...

  5. 系统级程序设计第一课内容——Linux系统与操作 2022.5.2

    系统级程序设计第一课内容--Linux系统与操作 文章目录 系统级程序设计第一课内容--Linux系统与操作 一.Linux文件系统与操作 二.文件操作 1.主要函数 2.open() 3.read( ...

  6. linux系统程序问题报告,Linux程序设计实验报告.docx

    Linux程序设计实验报告.docx Linux程序设计实验指导书实验类别课内实验 实验课程名称Linux程序设计实验室名称软件工程专业实验室 实验课程编号 000 总 学 时32 学 分 2 适用专 ...

  7. linux 系统编程之-程序设计

    文章目录 第1章 入门 1.2.1 linux程序 1.2.2 C语言编译器 1.2.3 开发系统导引 第2章 shell程序设计 2.3 什么是shell 2.4 管道和重定向 2.4.1 重定向输 ...

  8. linux电机驱动程序,基于Linux系统的HHARM9电机驱动程序设计

    电子科学知识.电机,arm 第24卷 第4期 2005年12月南昌工程学院学报JournalofNanchangInstituteofTechnologyVol.24No.4Dec.2005文章编号: ...

  9. linux程序设计百度网盘,linux系统编程视频 百度网盘下载

    本帖最后由 雇佣兵333 于 2015-5-19 16:15 编辑 c教程目录: Linux开发快速入门培训 gcc快速入门 Makefile快速入门 GDB快速入门 Linux系统编程之文件篇 01 ...

最新文章

  1. 微服务如何设计一个配置中心
  2. 李飞飞团队最新论文:如何对图像中的实体精准“配对”?(附代码论文)
  3. 邓海建:让网约车成为智慧城市的“老司机”
  4. win7安装oracle9i 补丁_最详细图解Windows7x64更新安装教程
  5. XML—— 验证XML文档
  6. 网络教育计算机 判断,北京师范大学网络教育计算机作业1、4、8
  7. Android之使用MediaPlayer和SurfaceView组件播放一个简单的视频
  8. 观察者模式与职责链模式的相同和不同_GOF设计模式(策略模式,职责链模式)...
  9. Gitlab+Git实现版本控制系统
  10. [转载] 为什么this()和super()必须是构造函数中的第一条语句?
  11. Hadoop开发环境搭建之Eclipse配置
  12. 这五款简单又实用自媒体排版工具,你不来试试?
  13. python同步油管用户信息
  14. Mac谷歌浏览器无法下载的解决方案
  15. Angular设置代理
  16. 中国大学MOOC|C语言程序设计(浙江大学翁恺)|习题与解答
  17. Graph Embedding模型【Node2Vec】学习笔记
  18. android关闭触摸声音,如何在Android中关闭所有触摸声音 | MOS86
  19. java初始化三门课程_[Java] 实验4参考代码
  20. Java调用opencv实现图片去水印

热门文章

  1. HD_1232畅通工程
  2. hdu 5247(RMQ+枚举)
  3. hdu 1394(树状数组求逆序数)
  4. Java使用OpenCV实现人脸识别
  5. 设计模式--建造者模式--简记
  6. Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
  7. 博客那些用到极致的推广方式
  8. Unofficial Windows Binaries for Python Extension Packages
  9. 在.c文件中调用cuda函数
  10. 迫零响应法用于MIMO系统