01-Linux下的C语言编程基础ppt.ppt
《01-Linux下的C语言编程基础ppt.ppt》由会员分享,可在线阅读,更多相关《01-Linux下的C语言编程基础ppt.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LINUX下C语言编程基础RE.ER嵌入式学院2008年3月1内容大纲LINUX下编程标准及基本概念常用的编程工具进程及线程的概念系统调用的基本概念内存布局及库管理C程序运行的基本环境如何调试程序有用的工具如何获取帮助LINUX下编程内容及相互之间的关系2LINUX可爱的小企鹅34相关名词GNU=GNUsNotUnixGPL:GeneralPublicLicense(公共许可协议)LGPL:LibraryGeneralPublicLicense(GNU程序库公共许可协议)5GNUGNU=“GNUsNotUnix”)RichardStallman于1984年发起GNU计划,GNU计划是要实现一个
2、新的操作系统,它类似于Unix的操作系统,但是完全开放。(当时Unix已不是免费软件)刚开始时只包含几个基本的软件:C编译器(gcc)、编译软件make、文本编辑软件Emacs、C语言库(glibc)以及其他一些核心应用程序(ls,cp等)到了1991年,GNU计划依然缺乏一个操作系统”内核”.直到LINUX出现各种使用Linux作为内核的GNU操作系统正被广泛地使用着;虽然这些系统通常被称作为“Linux”,但是它们应该更精确地被称为GNU/Linux系统。6GPLGPL许可证用来保护自由软件在被修改后,依然是自由软件。GPL的特点:GPL软件的提供者可以免费或者付费的向用户提供该软件在用户
3、获取该软件时,必须可以同时得到源代码。得到该软件后,用户可以:执行该软件修改源代码,然后重新发布利用部分未修改的源代码,编写自己的程序,然后发布。动态或者静态链接该GPL软件的二进制形式,编写和发布自己的程序。被发布的程序(上述2,3,4),必须也是GPL软件。7LGPLLGPL许可证用来保护自由软件在被修改后,依然是自由软件。LGPL的特点LGPL软件的提供者可以免费或者付费的向用户提供该软件。在用户获取该软件时,必须可以同时得到源代码得到该软件后,用户可以:执行该软件修改源代码,然后重新发布利用部分未修改的源代码,编写自己的程序,然后发布。动态或者静态连接该GPL软件的二进制形式,编写和发
4、布自己的程序只有在修改源代码的情况下(上述2),被发布的新程序才必须是LGPL软件8LINUX编程标准-ANSI历史历史:ANSI(美国国家标准局)于1989年制定的C语言标准,后来被ISO(国际化标准组织)接受为标准,因此也成为ISOC目标目标:为各种操作系统上的C程序提供可移植性保证,而不仅仅限于类UNIX系统。内容内容:该标准不仅定义了C语言的语法和语义,而且还定义了一个标准库,这个库可以根据头文件划分。9LINUX编程标准-POSIX历史历史:POSIX是PortableOperatingSystemInterfaceforUNIX的首字母缩写词,最初由IEEE开发的标准族,部分已经被
5、ISO接受为国际标准目标目标:保证程序的可移植性。只要保证他们的程序设计的符合POSIX标准,开发人员就能确信他们的程序可以和支持POSIX的操作系统互联。内容内容:这个标准定义了应用程序和操作系统之间的一个接口。10库与系统调用11系统调用系统调用:操作系统提供给外部程序的接口在linux系统中,系统调用函数定义在glibc中系统调用说明系统调用函数通常在成功时返回0值,不成功时返回非零值。如果要检查失败的原因,则要判断全局变量errno的值,errno中包含错误代码许多系统调用的返回数据通常通过引用参数传递。这时,需要在函数参数中传递缓冲区地址,而返回的数据就保存在该缓冲区中不能认为系统调
6、用函数就要比其它函数的执行效率高。要注意,系统调用是一个非常耗时的过程12内容大纲LINUX下编程标准及基本概念常用的编程工具进程及线程的概念系统调用的基本概念内存布局及库管理C程序运行的基本环境如何调试程序有用的工具如何获取帮助LINUX下编程内容及相互之间的关系13LINUX下的常用编程工具编辑工具(vi,emacs)编译工具(gcc/g+)二进制文件工具()项目组织工具(make)版本控制工具(cvs,bugzilla)14二进制文件工具nm:列出目标文件序列”object-file.”中的符号,这样可以帮助程序员定位和分析执行程序和目标文件中的符号信息和它的属性。objdump:显示一
7、个或多个目标文件的信息,由其选项来控制显示哪些特定的信息。通过使用这个工具可以方便的查看执行文件或库文件的信息,如我们可以通过objdump软件反汇编执行程序,看到执行程序的汇编格式。objcopy:将一种格式的文件内容进行转换,并输出为另一种格式的目标文件。15LINUX下编程标准及基本概念常用的编程工具进程的概念进程的概念系统调用的基本概念内存布局及库管理C程序运行的基本环境LINUX文件系统及I/O如何调试程序有用的工具如何获取帮助LINUX下编程内容及相互之间的关系16程序与进程程序:是一个包含可以执行代码的文件,是一个静态的文件进程:是一个开始执行但是还没有结束的程序的实例.就是可执
8、行文件的具体实现.17进程的特征动态性并发性独立性异步性占用资源(结构特性)18进程状态新建状态:进程正在被创建就绪状态:系统正在等待CPU来执行命令执行状态:进程正在运行阻塞状态:进程正在等待某一个事件发生终止状态:进程已经结束了系统正在回收资源19进程状态的转换20常用的进程调度方法时间片优先级先来先服务短作业优先21LINUX中进程的表示方法为了管理进程,操作系统必须对每个进程所做的事情进行清楚地描述,为此,操作系统使用数据结构来代表处理不同的实体,这个数据结构就是通常所说的进程描述符或进程控制块,在linux系统中,这就是task_struct结构,在includelinuxsched
9、.h文件中定义。每个进程都会被分配一个task_struct结构,它包含了这个进程的所有信息,在任何时候操作系统都能跟踪这个结构的信息,这个结构是linux内核中最重要的数据结构22task_struct相关说明,见includelinuxsched.h文件.系统还有一个当前进程指针CURRENT,用来指向正在运行的进程。23task_struct结构分析进程的task_struct结构分为以下几个字段:状态:进程在运行时总是在不停地改变它的状态。在Linux系统中,有以下几个状态:调度信息调度算法需要此信息来决定系统中的那一个进程需要执行。标识符 系统中的每一个进程都有一个进程标识符。进程标
10、识符并不 指向进程向量的索引。每个进程同时还包括用户标识符和工作组标识符。24task_struct结构分析内部进程通讯Linux系统支持信号、管道、信号量等内部进程通讯机制。链接 在Linux系统中,每个进程都和其他的进程有所联系。除了初始化进程,其他的进程都有父进程。一个新的进程一般都是由其他的进程复制而来的。task_struct结构中包括指向父进程,兄弟进程和子进程的指针。时间和计时器内核需要记录进程的创建时间和进程运行所占用的CPU的时间。进程可以使用系统调用设置计时器,并当计时器失效时给进程一个信号。计时器可以是一次性的或周期性的。25task_struct结构分析文件系统进程在运
11、行时可以打开和关闭文件。task_struct结构中包括指向每个打开文件的文件描述符的指针,并且包括两个指向VFS索引节点的指针。VFS的索引节点用来在文件系统内唯一地描述一个文件或目录,并且提供文件系统操作的统一的接口。第一个索引节点是进程的根目录,第二个节点是当前的工作目录。两个VFS索引节点都有一个计数字段用来表明指向节点的进程数。虚拟内存大多数的进程都需要虚拟内存。Linux系统必须了解如何将虚拟内存映射到系统的物理内存。处理器的内容一个进程可以说是系统当前状态的总和。每当一个进程正在运行时,它都要使用处理器的寄存器及堆栈等资源。当一个进程挂起时,所有有关处理器的内容都要保存到进程的t
12、ask_struct中。当进程恢复运行时,所有保存的内容再装入到处理器中。26LINUX中进程的控制启动运行程序前台执行:需要终端后台执行:不需要终端进程结束27程序的执行环境每个程序都接收到一张环境表。与参数表一样,环境表也是一个字符指针数组,其中每个指针包含一个以null结束的字符串的地址。全局变量environ则包含了该指针数组的地址。externchar*environ;我们称environ为环境指针,指针数组为环境表,其中各指针指向的字符串为环境字符串。28程序的执行环境-#includeintputenv(constchar*str);intsetenv(constchar*nam
13、e,constchar*value,intrewrite);两个函数返回:若成功则为0,若出错则为非0voidunsetenv(constchar*name);-实例分析:env.c29重要的环境变量PATH可执行程序的搜索路径LD_LIBRARY_PATH:将其它目录加入到库搜索路径。它的内容应该是由冒号分隔的目录列表设置方法:1、rcS,profile文件2、export命令30C程序的执行与结束C程序总是从main函数开始执行。main函数的原型是:intmain(intargc,char*argv);有五种方式使进程终止:正常终止:从main返回。调用exit。调用_exit。异常终止
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 Linux 语言 编程 基础 ppt
限制150内