linux应用程序开发介绍.pdf

linux应用程序开发介绍.pdf

ID:52955482

大小:576.65 KB

页数:30页

时间:2020-04-03

linux应用程序开发介绍.pdf_第1页
linux应用程序开发介绍.pdf_第2页
linux应用程序开发介绍.pdf_第3页
linux应用程序开发介绍.pdf_第4页
linux应用程序开发介绍.pdf_第5页
资源描述:

《linux应用程序开发介绍.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第2章Linux系统应用程序开发读性大大降低的糟糕情况,同时不要试图去将你的代码注释写得更好,而是应该将程序代码写得更好,不要花费大量的时间和精力去解释这些的代码。通常情况下,注释只说明代码的功能,而不会说明其实现的原理,因为基于一个好的软件开发流程而产生出来的软件代码,它的编制基础是详细设计和实现文档,软件代码仅仅是该文档的产出物。这也说明程序中的注释仅仅是完成了简单说明和介绍的功能。在实际应用过程中,应该避免把注释插到函数体内,应写在函数前面,以说明其功能。同样对于必须加以解释的代码或变量,注释也应写在它们的前面。●大括号的运

2、用大括号(“{”和“}”)的处理在C程序书写风格中也是很重要的,与缩进格式不同,几乎没有任何理由可以说服程序员去选择一种风格而不是选择另外一种风格,我们建议采用统一的风格来处理大括号的排版,而不会在意函数体还是其他——开始和结束的括号都放在下一行的第一列。●函数的书写格式函数应该是短小精悍的,它的代码长度应该有限。也就是说,一个函数的最大长度和函数的复杂程度以及缩进大小成反比。如果计划编写一个简单但长度相对较长的函数,并且已经对不同的情况做了很多细化的工作,那么编写一个稍长的函数也是可以的。但是,假如计划编写一个很复杂的函数,而且

3、你已经估计到,其他人很难读懂这个函数,一般建议请重新考虑这个函数,并将它们分割成更小的函数。在进行函数设计时,还需要考虑的是,该函数困难要定义的局部变量的数量,理论上,这些变量不应该超过10个,否则就有可能出错。●其他方面的注意事项(1)如果参数太多,不能放在同一行,则在每行参数开头处对齐。(2)当一个表达式需要分成多行书写时,应该在操作符之前分割。(3)尽量不要让两个不同优先级的操作符出现在相同的对齐方式中,应该增加括号通过代码缩进表示嵌套关系。(4)不要在声明多个变量时跨行,每一行都应以一个新的声明开头。(5)当一个if-el

4、se语句中嵌套了另一个if-else语句时,应该用大括号把if-else语句括起来。(6)尽量避免在if条件中进行赋值运算。(7)如果没有声明,不要将BOOL值TRUE和FALSE对应与1和0进行编程,大多数编译器会将FALSE视为0,任何非0值都是TRUE。我们建议重新定义BOOL值并锁定0和1。(8)预防和避免非法指针的使用。2.3Linux系统程序应用开发实例分析本节内容包括较为丰富,考虑工程开发的实际需要,笔者在这里精心选编了若干比较有代表性的例子来加以介绍,包括一些常见的程序开发所必须的典型案例与技巧,包括系统文件系统应

5、用编程、内存管理、多进程编程、进程通讯机制、串口通讯、网络编程、GUI编程初步等各个部分。所涵盖内容覆盖面较全,每一个实例都给出实际代码,并尽可能的给出真实的实验结果,考虑篇幅限制,每个实验都给出简要注释和分析,详尽分析留给读者。38嵌入式Linux工程开发实践2.3.1文件系统应用编程Linux支持多种文件系统,如ext、ext2、minix、iso9660、msdos、fat、vfat、nfs等。在这些具体文件系统的上层,Linux提供了虚拟文件系统(VFS)来统一它们的行为,虚拟文件系统为不同的文件系统与内核的通信提供了一致

6、的接口。下面对涉及到的文件系统编程关键函数给以分析:ò关键函数分析1.在linux下,在对文件的任何操作之前,必须先用open()函数将文件打开,其原型为:intopen(constchar*filename,intflags[,mode_tmode])其中[]中的项为可选项,filename为指定的文件及其路径名,flags参数控制文件的打开方式,可以是O_RDONLY、O_RDWR、O_WRONLY等等,分别表示只读、读写、只写方式等,mode参数指定正在创建的文件的存储权限,可以是S_IWGRP、S_IRUSR、S_IWUS

7、R等的或值。函数创建并返回一个由filename所指定的文件的心的描述符。错误时,返回一个-1,并给errno置相应的错误代码。2.对文件进行读操作可以用read()函数,其原型为:ssize_tread(intfd,void*buffer,size_tsize)该函数从文件描述符fd所指的文件中读取size个字节的字符,并把它放到buffer所指向的缓冲区中。函数正常返回实际所读取的字节数。返回0表明到达了文件的尾端,返回-1表明出错,并给errno置相应的错误代码。3.对文件进行写操作可以用write()函数,其原型为:ssi

8、ze_twrite(intfd,constvoid*buffer,size_tsize)该函数把size个字节从buffer所指向的缓冲区中写入到用fd所指向的文件中。函数正常返回实际所写入的字节数。返回-1表明出错,并给errno置相应的错误代码

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。