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

嵌入式欧编程基础2013-2014-2.ppt

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

嵌入式编程基础 linux 平台下的应用程序类型 linux 下的应用程序主要有两种特殊的文件来代表:可执行文件和脚本程序。 可执行文件是能够被计算机直接执行的程序,相当于win平台下exe文件。 脚本程序则是一组指令,这些指令将由另外一个程序(一般来说是shell 解释器)来执行,相当于dos下的bat文件。 Shell如何解释执行命令 内置命令---直接执行 实例程序(用户给出路径的)---按照用户给出的路径执行 实例程序(用户未给出路径)---按照PATH变量给出的路径执行 将被搜索的那些子目录都被保存到一个名字为PATH的shell变量里面,和dos下的情况差不多。PATH 是由系统管理员预先配置好了的,通常包括/bin,/usr/bin,/usr/local/bin,你可以使用echo$PATH来显示。如果你是使用的root登陆系统,则还会多包括/sbin,/usr/sbin目录。 应用程序开发流程 编写应用程序(vi编辑器) 编译应用程序(编译器) 调试运行应用程序(调试器) 执行(直接输入程序命令运行) 应用程序开发流程(实例) 为了快速获得对linux 平台下应用程序设计的体验,我们首先编写经典的hello world程序。 下面的代码来自 c programming language第一章 #include stdio.h main() { printf(hello, world\n); } 利用vi进行编辑 首先,进入linux的控制台界面。然后,在某个目录建立一个空的c程序文件,比如利用touch /home/zhaohui/linuxApp/hello.c命令 然后cd到当前目录,调用vi编辑器对这个空文件进行编辑,输入这个程序的源代码,(利用vihello.c命令,进入vi编辑器,然后进入vi 的编辑状态,然后输入程序,然后进入vi的命令状态,进行源程序的保存和vi 的退出,回到shell 提示符。) --------------hello.c---------------------- #include stdio.h int main() { printf(Hello, Linux programming world!\n); return 0; } ------------------------------------------- gcc 编译和程序运行 然后在当前目录输入编译这个程序的命令,在程序没有错误的情况下,会在当前目录得到一个可执行文件hello。 程序的运行如图所示。 注意:如果你只是输入 gcc hello.c则生成的可执行文件的名字是a.out 过程总结 这个命令会依次调用gcc的预编译器(cpp),汇编器(生成.s文件),编译器(生成.o文件)和链接器程序(ld)。 $ gcc -E hello.c -o hello.cpp $ gcc -x cpp-output -c hello.cpp -o hello.o $ gcc hello.o -o hello 提示:命令$ gcc –O2 -S hello.c 可以得到.s汇编文件。如果打算学习某个c语言程序所对应的汇编代码。可以参考csapp的第三章。诸如变量、数组、指针、控制流、子程序等。 当然也可以使用objdump -d hello来查看汇编代码。诸如objdump等这些命令称为binutils,是非常强大的代码分析工具。比如addr2line,ar,as,gprof,ld,nm,objcopy,objdump,ranlib,size,strings,strip等。具体可以参考其man命令手册。 文件I/O编程 文件描述符 文件I/O相关操作函数 open函数 close函数 lseek函数 read函数 write函数 dup和dup2函数 fcntl函数 文件描述符 文件描述符定义 linux中每打开一个文件都有一个文件描述符与之对应。该描述符是一个非负整数。取值 0对应标准输入,表示键盘 1对应标准输出,一般屏幕 2表示出错输出,一般到屏幕 文件I/O操作函数---open、close函数 Open函数可以打开一个文件,也可以创建并打开文件; 调用方式: #include sys/types.h #include sys/stat.h #include fcntl.h Int open(const char pathname,int flag…) 调用成功返回文件描述符,失败返回-1 Close函数---关闭一个文件,释放该文件上的记录锁 调用方法: #includeunistd.h Int clo

文档评论(0)

180****5152 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档