linux下的C语言开发

在很多人的眼里,C语言linux常常是分不开的。这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品。当然,linux操作系统本身对C语言的支持也是相当到位的。作为一个真正的程序员来说,如果没有在linux下面用C语言编写过完整的程序,那么只能说他对C语言本身的理解还相关肤浅,对系统本身的认识也不够到位。作为程序员来说,linux系统为我们提供了很多理想的环境,这其中包括了下面几个方面,
    
    (1)完善的编译环境,包括gcc、as、ld等编译、链接工具
    (2)强大的调试环境,主要是gdb工具
    (3)丰富的自动编译工具,主要是make工具
    (4)多样化的os选择,ubuntu、redflag等等
    (5)浩瀚的开源代码库

当然,不管我怎么说,最终朋友们还是应该自己勇敢地跨出前进的第一步。如果还没有过Linux编程经验的朋友可以首先在自己的pc上面安装一个虚拟机,然后就可以在shell下面编写自己的C语言代码了。http://hovertree.com/menu/c/

#include <stdio.h>  

int main()
{
    printf("hello!\n");
    return 1;
}    /* 何问起 hovertree.com */

编写完上面的代码后,你需要做的就是两个步骤:1、输入 gcc hello.c -o hello;2、输入./hello。如果一切正常的话,此时你应该会在屏幕上看到一行hello的打印。如果你看到了,那么恭喜你,你已经可以开始linux的c语言编程之旅了。

当然,我们不会满足于这么简单的打印功能。下面就可以编写一个简单的迭代函数,

#include <stdio.h>  

int iterate(int value)
{
    if(1 == value)
        return 1;
    return iterate(value - 1) + value;
}  

int main()
{
    printf("%d\n", iterate(10));
    return 1;
}  /* 何问起 hovertree.com */

此时,同样我们需要重复上面的步骤:1、输入gcc hello.c -o hello;2、输入./hello。当然此时如果一切OK的话,你就会看到屏幕会有55这个数的输出。本来1到10的数据之和就是55, 这说明我们的程序是正确的。

当然, 还会有一些朋友对程序的反汇编感兴趣,那么他需要两个步骤:1、gcc hello.c -g -o hello;2、objdump -S -d ./hello。之所以在gcc编译的时候加上-g是为了添加调试信息,objdump中的-S选项是为了在显示汇编代码的时候同时显示原来的C语言源代码。

int iterate(int value)
{
 8048374:       55                      push   %ebp
 8048375:       89 e5                   mov    %esp,%ebp
 8048377:       83 ec 08                sub    $0x8,%esp
    if(1 == value)
 804837a:       83 7d 08 01             cmpl   $0x1,0x8(%ebp)
 804837e:       75 09                   jne    8048389 <iterate+0x15>
        return 1;
 8048380:       c7 45 fc 01 00 00 00    movl   $0x1,0xfffffffc(%ebp)
 8048387:       eb 16                   jmp    804839f <iterate+0x2b>
    return iterate(value -1) + value;
 8048389:       8b 45 08                mov    0x8(%ebp),%eax
 804838c:       83 e8 01                sub    $0x1,%eax
 804838f:       89 04 24                mov    %eax,(%esp)
 8048392:       e8 dd ff ff ff          call   8048374 <iterate>
 8048397:       8b 55 08                mov    0x8(%ebp),%edx
 804839a:       01 c2                   add    %eax,%edx
 804839c:       89 55 fc                mov    %edx,0xfffffffc(%ebp)
 804839f:       8b 45 fc                mov    0xfffffffc(%ebp),%eax
}
 80483a2:       c9                      leave
 80483a3:       c3                      ret  

推荐:http://www.cnblogs.com/roucheng/p/cbianyi.html

时间: 2024-11-05 14:54:37

linux下的C语言开发的相关文章

linux下的C语言开发(gdb调试)

原文: http://blog.csdn.net/feixiaoxing/article/details/7199643 用gdb调试多进程的程序会遇到困难,gdb只能跟踪一个进程(默认是跟踪父进程),而不能同时跟踪多个进程,但可以设置gdb在fork之后跟踪父进程还是子进程.以上面的程序为 #include <stdlib.h> #include <unistd.h> #include <stdio.h> #define MAXLINE 80 int main(voi

Linux下快速搭建php开发环境

php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XAMPP可快速搭建PHP开发环境.下载链接:https://www.apachefriends.org/download.html  进入下载界面选择XAMPP for Linux下载 启动终端输入命令  cd /下载xampp保存的路径.我的保存路径是:/home/coderose/下载.更改安装程

linux下的c语言编程删除文件夹

刚刚在学习开始做新项目的时候,学长布置了一项任务,就是在给定一个目录下,要将这个目录下一个星期之前的目录包括里面的文件全部删除,只保留这一个星期内的.百度了好久的资料,终于完成,记录一下防止忘记.(注:文件夹名称默认为日期格式,如20140716) #include<dirent.h> #include<sys/types.h> #include<string.h> #include<stdlib.h> #include<unistd.h> #i

在Linux下开始C语言的学习

为什么要在linux下学习C语言? linux下可以体验到最纯粹的C语言编程,可以抛出其他IDE的影响 环境配置简单,一条命令就足够.甚至对于大多数linux发行版本,都已经不需要配置C语言的环境 查手册方便,在Linux下如果你不清楚一个库函数的用法,直接man,还锻炼英语了.如果想了解man,那就先man man. OK,let's star! 第一步,打开terminal,先输入vi hello.c新建一个c的源文件 接着我们就进入了VIM编辑器,写一段helloworld的代码吧 输入:

Ubuntu Linux下如何配置Android开发环境

下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.Android SDK和PhoneGap在Ubuntu 11.04环境下配置Android开发环境. 以下是在Ubuntu linux系统中配置Android开发环境的几个步骤:        1.安装Eclipse和Android SDK/PhoneGap所需软件包: 打开终端,输入下面命令完成题目所述

在Linux下安装C/C++开发工具包的最佳方式

如果你使用的是Fedora, Red Hat, CentOS, 或者 ScientificLinux 系统,使用下面的命令安装GNU的C/C++开发包和编译器. # yum groupinstall 'Development Tools' 如果你使用的是Debian 或者 UbuntuLinux系统,你可以使用下面的这个命令来安装C/C++编译器. #sudo apt-get update #sudo apt-get install build-essential manpages-dev 在L

Windows下搭建go语言开发环境 以及 开发IDE (附下载链接)

1.下载 并且 安装 Go安装包 =========================================================== 在CSDN上传了我的版本,供大家下载: =========================================================== go1.2.windows-386.msi : http://download.csdn.net/detail/shuideyidi/7718563 go1.2.1.windows-am

linux下apache+mysql+php开发环境纯源代码编译搭建

linux下apache+mysql+php开发环境纯源代码编译搭建 记录一下我在fedora core 1下通过源代码编译出来的apache+mysql+php开发环境的全部过程 通常安装一台服务器当然使用rpm是最方便的,不需要考虑太多配置的问题,就可以轻松获得需要的环境了.不过rpm包互相关联的问题也不是这么容易解决. apache,mysql,php这三个应用从源代码编译安装还是比较简单的,配置参数不算复杂,而且没有太多的依赖关系,从源码编译出来的系统也比较稳定一些,方便未来打补丁和升级

LINUX下搭建JAVA的开发环境

LINUX下搭建JAVA的开发环境 (2009-07-13 10:04:13) 下面就将Linux下JAVA开发环境的搭建详细道来: 1.Linux下JDK的安装 至于下载JDK的二进制可执行文件,这里就不讲了,大家直接到官方网去下载就可以了. (1)我下载下来的JDK安装文件名称为:jdk-1_5_0_14-linux-i586-rpm.bin,我把它保存在/tools目录下. (2)打开一个终端,依次输入以下命令: # cd /tools                    进入JDK安装