linux课程设计指导文档.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE II 2008/2 new TOC \o 1-3 \u 第1章 问题1以及相关知识 1 1.1. Linux下的C编程 1 1. 源程序的编译 1 2. 头文件和系统求助 2 1.2. 问题1-1以及相关知识 2 1.3. 问题1-2以及相关知识 6 1. 实现原理 7 2. 注意要点 7 3. 特别强调: 7 第2章 问题2及相关知识 9 2.1. Linux系统调用机制 9 1. 内核中系统调用的过程 9 2. 用户程序中系统调用的过程 16 2.2. 添加新的系统调用(2.6.18内核) 19 1. 步骤1:准备 19 2. 步骤2:下载源代码 19 3. 步骤3:修改相应内核文件 20 4. 步骤4:开始对新的内核进行编译 21 2.3. 对新加的系统调用进行测试 23 1. 旧版本的测试方法 23 2. 新版本的测试方法 23 第3章 问题3及其相关知识 25 3.1. 基础知识 25 3.2. 添加新模块的基本步骤 26 1. 写设备驱动源代码: 26 2. 编译 28 3. 挂载内核中模块 29 4. 创建新的虚拟设备文件 30 5. 测试新的设备驱动 30 6. 卸载操作 30 第4章 问题4以及相关知识 31 4.1. 实现原理 31 4.2. 实现方法 31 参考文献 43 PAGE 6 问题1以及相关知识 Linux下的C编程 源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv) { printf(Hello Linux\n); } 要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c gcc 编译器就会为我们生成一个名为hello的可执行文件.在当前目录下执行./hello就可以看到程序的输出结果了.命令行中 gcc表示我们是用gcc来编译我们的源程序,-o 选项表示我们要求编译器给我们输出的可执行文件名为hello 而hello.c是我们的源程序文件. gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了. -o选项我们已经知道了,表示我们要求输出的可执行文件名. -c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件. -g选项表示我们要求编译器在编译的时候提供我们以后对程序 进行调试的信息. 知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更多的选项,可以查看gcc的帮助文档(可以用man gcc来查看),那里有着许多对其它选项的详细说明. 头文件和系统求助 有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得该函数在哪个头文件进行了说明。这个时候我们可以求助系统。比如说我们想知道fread这个函数的确切形式,我们只要执行 man fread 系统就会输出着函数的详细解释。和这个函数所在的头文件stdio.h说明了. 如果我们要write这个函 数的说明,当我们执行man write时,输出的结果却不是我们所需要的。因为我们要的是w rite这个函数的说明,可是出来的却是write这个命令的说明。为了得到write的函数说明我们要用 man 2 write。 2表示我们用的write这个函数是系统调用函数,还有一个我们常用的是3表示函数是C的库函数。记住不管什么时候,man都是我们的最好助手。 问题1-1以及相关知识 本节主要针对课程设计题目1-1:编一个C程序,其内容为实现文件拷贝的功能。 主要用到如下几个函数: open:打开文件 close:关闭文件 read:读操作 write:写操作 当我们需要打开一个文件进行读写操作的时候,我们可以使用系统调用函数open.使用完成以后我们调用另外一个close函数进行关闭操作. #include fcntl.h //注意:这个字母是小写的L,而不是数字1。 #include unistd.h #include sys/types.h #include sys/stat.h int open(const char *pathname,int flags); int open(const char *pathname,int flags,mode_t mode); int close(int fd); open函数有两个形式.其中pathname是我们要打开的文件名(包含路径名称,缺省是认为在 当前路径下面).flags可

文档评论(0)

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

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

1亿VIP精品文档

相关文档