bigdog
驱动牛犊
驱动牛犊
  • 注册日期2003-06-24
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1982回复:8

怎样在Linux下写程序

楼主#
更多 发布于:2003-10-08 11:08
各位高人,本人linux下菜鸟一个,不知道如何创建linux下编程环境
请高人指点

最新喜欢:

hughweihughwe...
saiwaiyehe
驱动牛犊
驱动牛犊
  • 注册日期2003-10-11
  • 最后登录2003-10-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-19 19:08
用vi命令
vi 文件名.c
开始写程序
:wq保存/退出
gcc -o 文件名.o   文件名.c  生成执行文件
zheng2002
驱动中牛
驱动中牛
  • 注册日期2002-04-17
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-02 13:07
找本入门的书籍看看
linux下的C语言
等等入门书籍
qq:14459938 email:zheng2002@21cn.com RH9 kernel 2.4.20
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-02 14:25
gcc就行了。
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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__(注意,每一边都是两个半角的下划线)标示,只有这样才能告诉编译器这个程序将在内核模式下运行而不是一个 ǖ挠没Ы
放弃瘟草,现吃李草
mobi
驱动牛犊
驱动牛犊
  • 注册日期2002-06-18
  • 最后登录2005-08-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-11-04 10:52
各位高人,本人linux下菜鸟一个,不知道如何创建linux下编程环境
请高人指点


如果连编程环境都还不清楚呢,我建议先别急着编程

先找一本Linux 教材,熟悉一下基本操作

其中抓两点重要的:VI 操作

软件包的安装... 如 libc

不需要太长时间的...

。。。。。。。。。。。。。。。。。
flamesong
驱动牛犊
驱动牛犊
  • 注册日期2003-11-04
  • 最后登录2003-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-11-04 15:48
LINUX下有Kdevelop,用过VC的话上手很快的.VI我也不习惯.
wumengyun
驱动牛犊
驱动牛犊
  • 注册日期2003-11-06
  • 最后登录2003-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-11-13 10:49
linux 下面,还有klix  跟windows下的delphi界面一样,
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
8楼#
发布于:2003-12-03 14:33
底层  Vi 和 shell编程
应用  Kdevelop等等
游客

返回顶部