admin管理员组

文章数量:1592967

***********《朱有鹏老师嵌入式linux核心课程》 ***********
《3.linux应用编程和网络编程-第1部分-3.1.linux中的文件IO》

--------------------------------------------------------
            欢迎访问《朱老师物联网大讲堂》官方网站
                    www.zhulaoshi
                   以获取本课程更多信息
--------------------------------------------------------

《3.linux应用编程和网络编程》

3.1.linux中的文件IO
3.2.文件属性
3.3.获取系统信息(系统时间、随机数、proc中的文件)
3.4.linux进程全解(进程环境、进程控制、进程关系、守护进程、进程间通信)
3.5.linux中的信号
3.6.高级IO
3.7.linux线程全解
3.8.网络基础
3.9.linux网络编程实践


第一部分、章节目录
3.1.1.应用编程框架介绍
3.1.2.文件操作的主要接口API
3.1.3.一个简单的文件读写实例
3.1.4.open函数的flag详解1
3.1.5.open函数的flag详解2
3.1.6.文件读写的一些细节
3.1.7.linux系统如何管理文件
3.1.8.lseek详解
3.1.9.多次打开同一文件与O_APPEND
3.1.10.文件共享的实现方式
3.1.11.文件描述符的复制1
3.1.12.文件描述符的复制2
3.1.13.fcntl函数介绍
3.1.14.标准IO库介绍

第二部分、章节介绍
3.1.1.应用编程框架介绍
    本节讲述linux应用编程课程的整体设计框架和设计思路,然后讲了本课程文件IO的含义和课程内容。
3.1.2.文件操作的主要接口API
    本节首先介绍操作系统API的概念,然后介绍文件IO的概念以及常用的API,最后讲了文件描述符。
3.1.3.一个简单的文件读写实例
    本节从零开始手写一个简单的读写文件实例程序,顺带介绍使用man手册获取函数原型的技巧,实现向文件中写入内容和从文件中读取内容
3.1.4.open函数的flag详解1    
    本节讲解open函数的flag参数,主要是读写权限flag和判断文件是否存在的flag,并且同时以实例程序来验证理论。
3.1.5.open函数的flag详解2
    本节接上节继续讲解open的flag,主要是创建文件标志、非阻塞标志和同步标志,并且顺便讲了阻塞和非阻塞的概念。
3.1.6.文件读写的一些细节    
    本节讲解文件读写中一些细节,譬如errno的设置和perror函数、read/write函数中的count参数,最后简单探讨了io效率问题,引出了标准IO
3.1.7.linux系统如何管理文件    
    本节简单探讨linux系统对文件的管理方法,重点讲了inode、vnode等概念,文件在硬盘上静态存储和在内存中被打开时的映像方式等。
3.1.8.lseek详解    
    本节讲解lseek函数,该函数用来移动文件的操作指针。利用这一特性我们可以计算文件长度、生成空洞文件等。
3.1.9.多次打开同一文件与O_APPEND
    本节探讨一个文件被多次打开时的情况,这种情况一般在文件共享中发生。重点讲了O_APPEND标志在其中的作用。
3.1.10.文件共享的实现方式
    本节正式提出文件共享的概念,并且分析了三种最长出现的文件共享的方式,以及他们的区别和联系
3.1.11.文件描述符的复制1
    本节引入文件描述符的复制,重点讲了dup函数,并且通过实例说明如何使用dup函数复制文件描述符。
3.1.12.文件描述符的复制2
    本节分析dup函数的缺陷,并且引入dup2函数来解决。
3.1.13.fcntl函数介绍
    本节介绍文件管理函数fcntl,该函数功能很强大,以后会经常用到,这里只是做初步的介绍和示例其基本用法。
3.1.14.标准IO库介绍
    本节引入标准IO库函数,并且使用常用标准IO库函数写一个简单的文件操作示例程序。
    


第三部分、随堂记录
3.1.1.应用编程框架介绍
3.1.1.1、什么是应用编程
(1)整个嵌入式linux核心课程包括5个点,按照学习顺序依次是:裸机、C高级、uboot和系统移植、linux应用编程和网络编程、驱动。
(2)典型的嵌入式产品就是基于嵌入式linux操作系统来工作的。典型的嵌入式产品的研发过程就是;第一步让linux系统在硬件上跑起来(系统移植工作),第二步基于linux系统来开发应用程序实现产品功能。比如:手机,厂商完成第一步。第二步app开发由其他厂家开发。
(3)基于linux去做应用编程,其实就是通过调用linux的系统API来实现应用需要完成的任务

3.1.1.2、本课程大纲规划

3.1.1.3、课程设计思路
(1)通过本课程9个小课程的学习,学会如何使用linux系统提供的API(和C库函数)来实现一定的功能,通过学习对应用层的编程有所掌握来配合后面驱动的学习。
(2)如果希望深入学习linux应用尤其是网络编程知识,可以去看一些专门介绍这一块的书。

3.1.1.4、什么是文件IO
(1)IO就是input/output,输入/输出。文件IO的意思就是读写文件。

linux下一切皆是文件。


3.1.2.文件操作的主要接口API
3.1.2.1、什么是操作系统API
(1)API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用。
(2)应用层程序通过调用API来调用操作系统中的各种功能,来干活。
(3)学习一个操作系统,其实就是学习使用这个操作系统的API
(1)今天我们要使用linux系统来读写文件,手段就是学习linux系统API中和文件IO有关的几个。
3.1.2.2、linux常用文件IO接口
(1)open、close、write、read、lseek

3.1.2.3、文件操作的一般步骤
(1)在linux系统中要操作一个文件,一般是先open打开一个文件,得到一个文件描述符,然后对文件进行读写操作(或其他操作),最后close关闭文件即可
(2)强调一点:我们对文件进行操作时,一定要先打开文件,打开成功后才能去操作(如果

本文标签: 学习笔记网络编程文件LinuxIO