网站大量收购闲置独家精品文档,联系QQ:2885784924

第4讲通信软件设计基础.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4讲通信软件设计基础

备注页 内容提纲 1.文件IO 2.串口通信程序设计 3.多进程程序设计 1. Linux文件I/O Linux中系统调用的基本概念 Linux中用户编程接口(API)及系统命令的相互关系 文件描述符 Linux下设备文件读写方法 Linux标准文件I/O函数的使用 1、Linux中系统调用的基本概念 系统调用 用户编程接口 系统命令 1.1系统调用 概念 系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组接口来获得操作系统内核提供的服务。 1.2 用户编程接口(API) 概念 用户编程接口是一个通过软中断机制向内核提交请求,以获得内核服务的接口。 API主要是通过C库(libc)实现的。 1.3系统命令 系统命令相对于API更高了一层,它实际是一个可执行的程序,它内部引用了用户编程接口(API)来实现相应的功能。 1.4 文件描述符 Linux对目录和设备的操作都等同于文件的操作,因此,大大简化了系统对不同设备的处理; Linux中文件主要分为:普通文件、目录文件、链接文件和设备文件; 文件描述符用来区分和引用特定的文件; 概念 文件描述符是个非负的整数,它是一个索引值; Linux对所有设备和文件的操作都使用文件描述符来进行。 一般地,进程启动时,都会打开3个文件:标准输入/输出和标准出错处理。 1.5标准I/O开发 标准I/O操作都是基于流缓冲的,是符合ANSI C的标准I/O处理。 标准I/O提供流缓冲的目的是尽可能减少使用read和write调用的数量。 标准I/O提供了3种类型的缓冲存储:全缓冲,行缓冲和不带缓冲。 1.5.1 打开和关闭文件 打开文件有三个标准函数,分别为:fopen、fdopen和freopen。他们以不同的模式打开文件,都返回一个指向FILE的指针。此后对文件的读写都是通过这个FILE指针来进行的。 fopen:可以指定打开文件的路径和模式; fdopen:可以指定打开文件的描述符和模式; freopen:可以指定打开文件、模式和特定的I/O流。 fopen函数语法要点 fclose函数 函数说明 关闭标准文件的函数为fclose,这时缓冲区中的数据写入文件中,并释放系统所提供的文件资源。 fclose函数的语法要点 实例 打开和关闭文件 1.5.2文件读写 读文件 写文件 输入输出 读文件fread 函数说明 在文件流打开之后,可用fread函数对文件进行读操作; 函数语法要点 写文件fwrite 函数说明 用于对指定的文件流进行写操作; 函数语法要点 实例 写文件实例 输入输出 文件打开后,根据一次读写文件中字符的数目可分为字符输入输出,行输入输出和格式化输入输出; 字符输入输出 函数说明 字符输入输出函数一次仅读写一个字符。 实例 fput.c 行输入输出 函数说明 行输入输出函数一次操作一行。 实例 Gets.c 随机存取 标准I/O使用fseek和ftell用于文件的随机存取。 fseek函数原型? int?fseek(FILE?*stream,?long?offset,?int?whence); 第一个参数是文件指针,第二个参数是一个long类型的偏移量(offset),表示从起始点开始移动的距离。第三个参数就是用于指定起始点的模式,stdio.h指定了下列模式常量:? SEEK_SET????????????文件开始处? SEEK_CUR????????????当前位置? SEEK_END????????????文件结尾处? 看几个调用例子:? ????????fseek(fp,0L,SEEK_SET);?//找到文件的开始处? ????????fseek(fp,0L,SEEK_END);?//定位到文件结尾处? ????????fseek(fp,2L,SEEK_CUR);?//文件当前位置向前移动2个字节数? 而ftell函数用于返回文件的当前位置,返回类型是一个long类型,比如下面的调用:? fseek(fp,0L,SEEK_END);//定位到结尾? ??? long?last=ftell(fp);?//返回当前位置? 那么此时的last就是文件指针fp指向的文件的字节数。 格式化输入输出 函数说明 格式化输入输出函数可以指定输入输出的具体格式,如常见的printf、scanf等函数。 函数语法要点 格式化输出函数 格式化输入函数语法要点 综合实例 实现文件的合并和分割; 练习 Copy命令的实现 请读取一个bmp图像; 2. 串口通信程序的设计 串口是计算机上一种非常通用设备通信的协议;大多数计算机包含两个基于RS232的

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档