阅读:1982回复:8
怎样在Linux下写程序
各位高人,本人linux下菜鸟一个,不知道如何创建linux下编程环境
请高人指点 |
|
最新喜欢:hughwe... |
沙发#
发布于:2003-10-19 19:08
用vi命令
vi 文件名.c 开始写程序 :wq保存/退出 gcc -o 文件名.o 文件名.c 生成执行文件 |
|
板凳#
发布于:2003-11-02 13:07
找本入门的书籍看看
linux下的C语言 等等入门书籍 |
|
|
地板#
发布于:2003-11-02 14:25
gcc就行了。
|
|
地下室#
发布于:2003-11-02 14:52
linux环境下使用过C语言编过程序,其大多数都属于用户应用程序,也称为普通用户程序。写了这么多应用程序后,就有点儿想写一点系统级的程序了,于是就参考了一些关于Linux内核编程原理的资料,并付之了实践,现在就让我将编写内核模块的方法给大家介绍一下吧.
一个Linux内核模块至少需要包括以下两个函数: 1.模块初始化函数――当模块被插入到Linux内核中时被调用; 2.模块卸载函数――当模块从Linux内核中被卸载时被调用。 一般来说,模块初始化函数给新模块在内核中注册,并且得到一个调用句柄;或者它使新模块的代码覆盖原有的代码(通常情况下新模块的代码增加了一些新功能,然后调用原有的代码)。 而模块卸载函数正好做了模块初始化函数相反的工作,它使新模块安全地被卸载。 下面我们来看看如何在Linux内核中插入一个模块,让其在屏幕上输出“Hello , this is module speaking!”的字样。 程序文件:hello.c #include $#@60;linux/kernel.h$#@62; /* 我们正在干一些关于内核的事情 */ #include $#@60;linux/module.h$#@62; /* 具体来说,是在写一个模块 */ #if CONFIG_MODVERSIONS==1 /* 如果需要指明模块的版本的话 */ #define MODVERSIONS #include $#@60;linux/modversions.h$#@62; /* 那就将linux/modversions.h文件包含*/ #endif int init_module() /* 模块初始化函数 */ { printk(\"Hello, this is the kernel speaking!\\ n\"); /* 如果我们将返回值置为非零,这说明初始化模块失败 */ return 0; } void cleanup_module() /* 模块卸载函数 */ { printk(“ This kernel module has been removed.\\ n\"); } 为了编译hello.c,我们还得编写一个Makefile文件。 内核模块不是一个单独的可执行体,它只能作为一个二进制目标文件(相当于DOS的obj文件)被内核调用。经常在Linux下些程序的用户一定熟悉cc或gcc的用法,在此我们使用GNU gcc来编译hello.c文件,使用-c标志表示只将源文件编译成二进制目标文件。 同时,所有的内核模块在编译时都要使用__KERNEL__(注意,每一边都是两个半角的下划线)标示,只有这样才能告诉编译器这个程序将在内核模式下运行而不是一个 ǖ挠没Ы |
|
|
5楼#
发布于:2003-11-04 10:52
各位高人,本人linux下菜鸟一个,不知道如何创建linux下编程环境 如果连编程环境都还不清楚呢,我建议先别急着编程 先找一本Linux 教材,熟悉一下基本操作 其中抓两点重要的:VI 操作 软件包的安装... 如 libc 不需要太长时间的... |
|
|
6楼#
发布于:2003-11-04 15:48
LINUX下有Kdevelop,用过VC的话上手很快的.VI我也不习惯.
|
|
7楼#
发布于:2003-11-13 10:49
linux 下面,还有klix 跟windows下的delphi界面一样,
|
|
8楼#
发布于:2003-12-03 14:33
底层 Vi 和 shell编程
应用 Kdevelop等等 |
|