实验二Linux下C语言开发环境及程序调试 (1)

合集下载

c程序实验报告一 c程序的运行环境及运行方法

c程序实验报告一 c程序的运行环境及运行方法

c程序实验报告一 c程序的运行环境及运行方法一、C程序的运行环境C程序是需要在计算机上运行的,因此它需要一个运行环境。

C语言最常见的运行环境是Windows和Unix/Linux。

1. Windows运行环境在Windows环境下,可以使用Microsoft Visual Studio或Code::Blocks等集成开发环境(IDE)来编写和运行C程序。

Visual Studio是一种比较常见且功能强大的IDE,它集成了调试器、编辑器和编译器。

在Visual Studio中,可以直接输入C代码,编辑并编译运行,也可以在命令行使用编译器gcc来编译运行C程序。

2. Unix/Linux运行环境在Unix/Linux环境下,可以使用诸如打开源软件组合(GCC)之类的编译器来编写和运行C程序。

GCC是一种功能齐全的C编译器,它在大多数Unix系统上都可用。

在Unix/Linux环境下,C程序可以在命令行上使用gcc编译并运行。

C程序的运行方法主要包括两种:使用命令行运行C程序和在IDE中运行C程序。

1. 命令行运行C程序使用GCC编译器将C代码编译为可运行二进制文件,然后在命令行上运行该二进制文件即可运行C程序。

以下是在Linux环境下的例子:(1)编写一个简单的C程序hello.c:```c#include <stdio.h>(2)使用gcc编译这个程序:$ gcc -o hello hello.c-o指定输出文件名,hello是可执行文件名。

(3)在终端上运行程序:$ ./hello输出:Hello World!2. 在IDE中运行C程序在IDE中运行C程序可以通过以下步骤完成:(1)打开IDE(例如Visual Studio)并创建一个新项目。

(2)在新项目上创建一个新的C源代码文件并输入C代码。

(3)编译代码,IDE将使用内置的编译器将C代码编译为可执行文件。

(4)运行程序,IDE将启动应用程序并附加调试器,编译器会自动转换代码并在调试器中执行。

1实验一Linux下的C语言编程环境

1实验一Linux下的C语言编程环境

1.实验一:Linux下的C语言编程环境(上)
(1)编辑器vi的使用
(2)编译器gcc的使用
2.实验二:Linux下的C语言编程环境(下)
(1 )make 和Makefile 的应用
(2)gdb的使用
3.实验三:Linux下的文件编程
(1)文件基本I/O操作
(2)文件高级操作
4.实验四:基于流的标准I/O操作
(1)读和写流
(2)流文件的龙位
5.实验五:进程操作
(1)进程创建
(2)exec 函数
6.实验六:进程间通信(上)
进程间使用信号和管道进行通信
7.实验七:进程间通信(下)
进程间使用消息队列、信号量、共享内存进行通信(实验中可用消息队列作为这3种的代表)
8.实验八:线程操作
线程的创建与同步
9.实验九:网络编程
数据流套接字的编程。

Linux下C程序设计实验报告

Linux下C程序设计实验报告

实验2 Linux下C程序设计实验目的1、掌握Linux下C语言程序设计的基本步骤。

2、了解和掌握gcc编译器使用实验内容一、编写C语言程序:输出两行文字“how are you”,在Linux下编辑,编译,运行。

实验步骤:1. 编辑:$gedit hello.进入gedit编辑程序,保存。

2. 编译:$gcc –o hello hello.c。

没有错误出现命令提示符,ls命令查看生成hello可执行程序。

3, 运行:$./hello。

看到程序结果。

程序结果:[root@localhost ~]# gcc -o hello hello.c[root@localhost ~]# lsanaconda-ks.cfg hello hello.c~ install.log.syslogDesktop hello.c install.log[root@localhost ~]# ./hellohow are you[root@localhost ~]#二、编辑以下程序loop.c2. 编译 gcc loop.c –o loop3.(前台)运行 ./loop按Ctrl-C终止4. 后台运行 ./loop &(可多次使用该命令)5. 多次使用ps命令查看进程状态注意loop的运行时间注意ps -l命令和loop命令的父进程号均为shell进程6. 使用kill命令控制该进程暂停kill –STOP <该进程的进程号> 恢复kill –CONT <该进程的进程号> 终止kill –KILL <该进程的进程号>程序结果:[root@localhost ~]# gcc -o loop loop.c[root@localhost ~]# ./loop&[1] 21118[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:12 loop21125 pts/3 00:00:00 ps[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:16 loop21128 pts/3 00:00:00 ps[root@localhost ~]# kill -stop 21118[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:49 loop21145 pts/3 00:00:00 ps[1]+ Stopped ./loop[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:49 loop21148 pts/3 00:00:00 ps[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:49 loop21153 pts/3 00:00:00 ps[root@localhost ~]# kill -cont 21118[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:53 loop21159 pts/3 00:00:00 ps[root@localhost ~]# psPID TTY TIME CMD 21074 pts/3 00:00:00 bash21118 pts/3 00:00:55 loop21160 pts/3 00:00:00 ps[root@localhost ~]# kill -kill 21118 [root@localhost ~]# psPID TTY TIME CMD 21074 pts/3 00:00:00 bash21167 pts/3 00:00:00 ps[1]+ Killed ./loop [root@localhost ~]#。

Linux系统C语言开发环境学习

Linux系统C语言开发环境学习

Linux系统C语⾔开发环境学习项⽬内容作业所属课程作业要求学号-姓名18041520-李国明作业学习⽬标:1.Linux系统下C语⾔开发环境搭建2.学习Linux系统环境C语⾔开发过程1.安装C语⾔开发环境Ubuntusudo apt install build-essential查看gcc版本信息gcc -v查看make版本信息make -v2.简单C语⾔练习1)⾸先我们通过man命令查看帮助⽂档如果我们不清楚⼀些命令的操作,我们可以通过man命令来查看帮助。

如:man gcc2)命令⾏模式简单C语⾔编译链接等操作我们可以通过vim编辑器编写⼀个最简单的C语⾔程序,如写⼀个输出⾃⼰学号的程序。

先创建⼀个⽂件夹,然后进⼊该新创建的⽂件夹。

我们输⼊完了源程序,接下来我们进⾏C语⾔程序编译的四个阶段,预编译,编译,汇编,链接a) 预编译我们可以⽤vim打开test.i⽂件来查看⽂件内容,也可以⽤命令来查看b)编译同样的我们可以⽤vim打开test.s⽂件来查看内容,也可以⽤命令,如cat因为预编译和编译得到的⽂件都是⽂本⽂件,所以我们可以⽤vim打开查看⽂件内容。

c) 汇编这⾥⽣成的不是⽂本⽂件了,是⼆进制⽂件,我们可以通过objdump命令来反汇编该⽂件来分析⽂件内容d) 链接可执⾏⽂件是⼆进制⽂件,同样需要⽤objdump命令来反汇编该⽂件分析⽂件内容。

objdump -d teste)运⾏3)多⽂件编译我们在exp4⽂件夹下⾯再建⼀个⽂件夹mfc(multi-files compile)在该⽂件夹下⾯创建5个⽂件,⽂件名分别如下:每个⽂件的内容分别如下:完成上⾯的代码输⼊,接下来我们进⾏编译,对于多⽂件编译,我们可以⼀次编译链接⽣成可执⾏⽂件,也可以分别编译每个C⽂件,最后再进⾏链接得到可执⾏⽂件。

请说明两种⽅法的区别?答:以上两种⽅法相⽐较,多⽂件编译⽅法编译时需要所有⽂件重新编译,单⽂件⽅法可以只重新编译修改的⽂件,未修改的⽂件不⽤重新编译。

linux下c程序的编写实验报告

linux下c程序的编写实验报告

linux下c程序的编写实验报告实验主题:在Linux下编写C程序的实验报告一、引言(150-200字)Linux是一种广泛应用的操作系统,具有高度开放性和灵活性,也是许多程序员首选的开发环境。

在Linux中,通过编写C程序可以实现各种应用和功能。

本实验旨在通过一步一步的说明和回答,介绍在Linux下编写C 程序的基本步骤和方法。

二、实验步骤(400-500字)1. 设置编程环境在Linux中编写C程序,首先需要安装相关的开发工具和编译器。

常用的编译器有gcc和clang,可以通过包管理器进行安装。

同时,也需要一个文本编辑器来编写C代码,比如vim或者emacs。

2. 编写Hello World程序Hello World程序是C语言学习的经典入门程序,它可以在屏幕上输出"Hello World"。

在文本编辑器中新建一个文件,命名为hello.c,然后在文件中输入以下代码:#include <stdio.h>int main() {printf("Hello World\n");return 0;}保存文件后,使用gcc编译器将该文件编译成可执行文件。

在终端中执行以下命令:gcc -o hello hello.c此时会生成一个名为hello的可执行文件。

通过执行该文件,可以在终端中看到输出结果"Hello World"。

3. 命令行参数和用户输入C程序可以接受命令行参数和用户输入,从而实现更复杂的功能。

在上一步编写的程序的基础上,我们尝试接收用户输入的姓名,并输出相应的问候语。

在hello.c文件中添加以下代码段:#include <stdio.h>int main(int argc, char *argv[]) {char name[100];printf("Please enter your name: ");scanf("s", name);printf("Hello, s!\n", name);return 0;}重新编译程序并执行,可以看到在终端中会提示用户输入姓名,并输出相应的问候语。

linux程序设计实验报告

linux程序设计实验报告

linux程序设计实验报告《Linux程序设计实验报告》在计算机科学领域,Linux操作系统一直是一个备受关注的话题。

作为一个开源的操作系统,Linux拥有强大的稳定性和灵活性,因此在各种领域都得到了广泛的应用。

本次实验报告将介绍我在Linux程序设计实验中的一些经验和收获。

实验一:环境搭建在实验的第一部分,我们需要搭建Linux操作系统的开发环境。

我选择了Ubuntu作为我的开发平台,并安装了gcc编译器和其他必要的工具。

在这个过程中,我学会了如何在Linux系统中安装软件包,配置环境变量以及使用命令行工具进行开发。

实验二:基本程序设计在这一部分,我们需要编写一些简单的程序来熟悉Linux系统的编程环境。

我选择了C语言作为主要的开发语言,因为在Linux系统中C语言是最常用的编程语言之一。

通过编写一些简单的程序,我学会了如何在Linux系统中进行编译、链接和调试。

实验三:文件操作在Linux系统中,文件操作是一个非常重要的部分。

在这个实验中,我们需要编写一些程序来进行文件的读写操作。

我学会了如何使用系统调用来打开、读取和写入文件,以及如何处理文件操作中可能出现的错误。

实验四:进程管理Linux系统是一个多进程的操作系统,因此进程管理是一个非常重要的主题。

在这个实验中,我学会了如何创建新进程、进行进程间通信以及处理进程的状态变化。

通过编写一些简单的多进程程序,我加深了对Linux系统进程管理的理解。

总结通过这次实验,我对Linux系统的程序设计有了更深入的了解。

我学会了如何搭建开发环境、进行基本的程序设计、进行文件操作以及进行进程管理。

这些知识不仅对我未来的学习和工作有着重要的意义,也为我进一步深入学习Linux 系统打下了坚实的基础。

希望通过不断的实践和学习,我能够在Linux系统的程序设计领域有所建树。

Linux系统下C语言编程及技巧研究

Linux系统下C语言编程及技巧研究

Linux系统下C语言编程及技巧研究一、Linux系统下的C语言开发环境在Linux系统下进行C语言编程,首先需要配置相应的开发环境。

通常来说,可以使用gcc编译器和GNU的make工具进行C语言程序的编译和构建。

gcc是一种功能强大的编译器,支持多种编程语言,可以将源代码编译成可执行文件。

而make工具则可以根据程序的依赖关系自动化构建程序。

Linux系统下也有一些集成开发环境(IDE)可供选择,比如Eclipse、Code::Blocks 等,这些IDE提供了丰富的功能和友好的界面,可以方便开发者进行C语言程序的开发和调试。

二、Linux系统下的C语言系统编程在Linux系统下进行C语言编程,除了一般的应用开发外,还有系统编程的需求。

系统编程通常涉及到文件操作、进程管理、内存管理、网络编程等方面。

在Linux系统下,这些功能可以通过C语言的系统调用来实现。

值得一提的是,Linux系统下提供了丰富的系统调用和API接口,开发者可以充分利用这些接口来完成各种复杂的系统编程任务,同时也需要注意系统调用的错误处理和资源管理,以确保系统编程的稳定性和安全性。

三、Linux系统下的C语言性能优化在Linux系统下进行C语言编程,除了功能的实现外,性能优化也是一个重要的方面。

针对不同的应用场景和需求,开发者可以通过一些技巧和工具来提高程序的性能。

可以通过对程序的算法和数据结构进行优化,使得程序在时间和空间上更加高效。

可以使用一些编译器的优化选项,比如-O3等,来提高程序的编译优化程度。

还可以利用一些性能分析工具,比如gprof、perf等,来进行程序的性能分析和优化。

对于多线程和并发编程的应用,也需要注意线程的创建和销毁开销、线程间的同步和通信等问题,以避免性能瓶颈和并发安全问题。

四、Linux系统下的C语言调试技巧在C语言程序的开发过程中,调试是一个不可或缺的环节。

在Linux系统下,可以使用gdb等调试工具来进行C语言程序的调试。

1.实验一Linux下的C语言编程环境(上)

1.实验一Linux下的C语言编程环境(上)

1. 实验一:Linux下的C语言编程环境(上)
(1)编辑器vi的使用
(2)编译器gcc的使用
2. 实验二:Linux下的C语言编程环境(下)
(1)make和Makefile的应用
(2)gdb的使用
3. 实验三:Linux下的文件编程
(1)文件基本I/O操作
(2)文件高级操作
4. 实验四:基于流的标准I/O操作
(1)读和写流
(2)流文件的定位
5. 实验五:进程操作
(1)进程创建
(2)exec函数
6. 实验六:进程间通信(上)
进程间使用信号和管道进行通信
7. 实验七:进程间通信(下)
进程间使用消息队列、信号量、共享内存进行通信(实验中可用消息队列作为这3种的代表)
8. 实验八:线程操作
线程的创建与同步
9. 实验九:网络编程
数据流套接字的编程。

linux c语言 实验报告

linux c语言 实验报告

linux c语言实验报告
《Linux C语言实验报告》
一、实验目的
本实验旨在通过使用Linux操作系统和C语言编程,掌握Linux环境下的C语
言编程技术,加深对Linux系统和C语言的理解和应用。

二、实验环境
本次实验使用的是Ubuntu操作系统,编程语言为C语言。

三、实验过程
1. 熟悉Linux环境:首先,我们需要熟悉Linux环境下的操作和命令,包括文件管理、编译和运行程序等。

2. 编写C语言程序:接着,我们编写了一些简单的C语言程序,包括输出
Hello World、计算器等功能。

3. 编译和运行程序:我们使用gcc编译器对编写的C语言程序进行编译,然后
在Linux环境下运行程序,观察程序的运行结果。

4. 调试程序:在程序运行过程中,我们发现了一些bug,通过调试程序来解决
这些问题,加深了对C语言的理解和掌握。

四、实验结果
通过本次实验,我们成功掌握了Linux环境下的C语言编程技术,能够熟练地
使用gcc编译器对C语言程序进行编译,并在Linux环境下运行程序。

同时,
我们也加深了对C语言的理解和应用,对程序的调试和优化有了更深入的认识。

五、实验总结
本次实验使我们对Linux操作系统和C语言编程有了更深入的了解,提高了我
们的编程能力和解决问题的能力。

同时,也为我们今后在Linux环境下进行软
件开发打下了良好的基础。

通过本次实验,我们不仅学到了很多知识,也提高了我们的动手能力和实际操
作能力。

我们相信,在今后的学习和工作中,这些知识和能力都会派上大用场。

linux 下c 程序的编写、编译与运行方法

linux 下c 程序的编写、编译与运行方法

linux 下c 程序的编写、编译与运行方法摘要:1. Linux 下的C 语言编程环境搭建2.C 程序的编写方法3.C 程序的编译与运行方法4.实用技巧与注意事项正文:**一、Linux 下的C 语言编程环境搭建**在Linux 系统中,我们可以使用自带的编译器(如GCC)进行C 语言编程。

首先,确保系统已安装了GCC 编译器。

可以通过以下命令进行检查:```bashgcc --version```如果未安装,可以使用以下命令进行安装:```bashsudo apt-get install gcc```**二、C 程序的编写方法**1.使用文本编辑器编写代码,如Vim、Emacs 等。

2.编写代码时,注意使用宏定义和预处理指令,如`#include`、`#define` 等。

3.编写完代码后,保存文件为 .c 扩展名,例如:`main.c`。

**三、C 程序的编译与运行方法**1.使用`gcc` 编译器编译C 程序。

编译命令格式如下:```bashgcc [options] filename.c -o output_file```其中,[options] 是编译选项,如优化选项`-O2`、禁用调试信息`-g` 等。

output_file 是编译后的可执行文件名。

例如,编译并生成名为`hello` 的可执行文件:```bashgcc main.c -o hello```2.运行编译后的可执行文件。

运行命令如下:```bash./output_file```例如,运行刚刚编译的`hello` 程序:```bash./hello```**四、实用技巧与注意事项**1.使用`gcc` 编译器时,可以利用`-Wall` 选项显示所有警告信息,以便更好地调试代码。

2.使用`gdb` 调试器进行程序调试,熟练掌握`gdb` 的基本命令,如`run`、`backtrace`、`print` 等。

3.注意代码格式和缩进,遵循Linux 风格规范。

Linux 下C程序编译上机实验报告

Linux 下C程序编译上机实验报告

辽宁工程技术大学上机实验报告成绩课程名称Linux程序设计实验题目实验2 Linux下C程序编译院系软件学院专业嵌入式软件工程班级09-2班姓名王翀学号0920010214实验日期2012-4-22实验目的1、熟悉嵌入式Linux系统(Red Hat)及集成开发环境;含交叉编译器arm-linux-gcc,并配置环境;2、熟悉Linux下的编辑器(vim),编译器(gcc),调试器(GDB);3、通过饱含多文件的makefile的编写,熟悉各种形式的makefile,并进一步加深对makefile中用户自定义变量、自动变量及预定义变量的理解。

实验准备1、装有虚拟机(VMware Workstation)和嵌入式Linux系统(Red Hat 9)的PC 机一台;2、XSBase270实验开发平台一套;3、认真阅读教材第二章节内容,练习课后2.7.3实验内容。

实验进度本次共有 2 个练习,完成 2 个。

实验内容【实验原理】(1)Makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make程序)首先读取Makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定cpp文件的编译来产生特定的obj文件。

(2)交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。

这种方法在异平台移植和嵌入式开发时非常有用。

实际上,GNU make工具通过一个称为Makefile的文件来完成对应用程序的自动维护和编译工作。

实验二《Linux平台下C语言实验》

实验二《Linux平台下C语言实验》
指导教师批阅及成绩:
查看变量值
在gdb中输入“p变量名”可以查看该变量的值。
gdb在显示变量值时都会在对应值前加“$n”标记,它是当前变量值的引用标记,以后想再用此变量,可以直接使用“$n”,提高调试效率。
继续运行程序
继续运行结果
变量y的值为1,但是最后输出的结果却为0,说明错误出在“%d”上,查看源代码,发现y为float型,而%d对应得是int型。
a.实验步骤
步骤1:编辑源程序代码
步骤2:输入程序代码
步骤3:编译程序
步骤4:运行程序
b.查看执行结果
程序的执行结果。
2.程序错误查找及调试
例6.用递归方法求n!。
a.实验步骤
步骤1:编辑源程序代码
步骤2:输入程序代码
步骤3:编译程序
步骤4:运行程序
程序执行结果
很明显,以上运行结果是不正确的。
步骤5:用gdb进行调试
步骤3:编译程序
编译结果:
步骤4:加“-lm”参数编译程序
步骤5:运行程序
b.查看执行结果
程序的执行结果
例3.输入学生成绩,要求输出成绩等级。90分以上为‘A’,80~90为‘B’,70~79为‘C’,60~69为‘D’,60以下为‘E’。
a.实验步骤
步骤1:编辑源程序代码
步骤2:输入程序代码
步骤3:编译程序
2.学会用vi编辑器在创建的文件里写程序源代码,感觉不足之处是编辑环境不是很好,比较复杂。在编辑源代码无错误后用GCC命令进行编译,生成可执行文件。在编译没有出错后,用./+文件名,运行该程序。
3.虽然在Linux下编程没有一些IDE开发环境,但也有其优势,那就是你不必学会使用很多的IDE,用Vi编辑器可以完成基本所有的程序编辑。另外一个优势也是最重要的优势:Linux内核是开源的,你可以看到程序在运行时的任何信息,这是其他平台所不具有的。使用Linux,你手中的整个操作系统,包括支持你运行C语言的一切工具的源代码,都是对你公开的。

LINUX下C语言使用、编译与调试实验

LINUX下C语言使用、编译与调试实验

LINUX下C语言使用、编译与调试实验LINUX 下C语言使用、编译与调试实验实验目的1、复习C语言程序基本知识2、练习并掌握UNIX提供的vi编辑器来编译C程序3、学会利用gcc、gdb编译、调试C程序实验内容1、用vi编写一个简单的、显示"Hello,World!"的C程序,用gcc 编译并观察编译后的结果2、利用gdb调试该程序3、运行生成的可执行文件。

实验指导一、C语言使用简介LINUX中包含了很多软件开发工具。

它们中的很多是用于C和C++应用程序开发的。

C是一种能在UNIX的早期就被广泛使用的通用编程语言。

它最早是由Bell 实验室的Dennis Ritchie为了UNIX的辅助开发而写的,从此C就成为世界上使用最广泛的计算机语言。

C能在编程领域里得到如此广泛支持的原因有:(1)它是一种非常通用的语言,并且它的语法和函数库在不同的平台上都是统一的,对开发者非常有吸引力;(2)用C写的程序执行速度很快;(3)C是所有版本UNIX上的系统语言;二、文件编辑器vivi是在UNIX 上被广泛使用的中英文编辑软件。

vi是visual editor 的缩写,是UNIX提供给用户的一个窗口化编辑环境。

进入vi,直接执行vi编辑程序即可。

例:$vi test.c显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。

vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。

编辑完成后,使用者可决定是否要取代原来旧有的文件。

1、vi的工作模式vi提供二种工作模式:输入模式(insert mode)和命令模式(command mode)。

使用者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。

要输入信息,应转换到输入模式。

(1)命令模式在输入模式下,按ESC可切换到命令模式。

命令模式下,可选用下列指令离开vi::q! 离开vi,并放弃刚在缓冲区内编辑的内容:wq 将缓冲区内的资料写入磁盘中,并离开vi:ZZ 同wq:x 同wq:w 将缓冲区内的资料写入磁盘中,但并不离开vi:q 离开vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用(2)命令模式下光标的移动H 左移一个字符J 下移一个字符K 上移一个字符L 右移一个字符0 移至该行的首$ 移至该行的末^ 移至该行的第一个字符处H 移至窗口的第一列M 移至窗口中间那一列L 移至窗口的最后一列G 移至该文件的最后一列W, W下一个单词 (W 忽略标点)B, B 上一个单词 (B 忽略标点)+ 移至下一列的第一个字符处- 移至上一列的第一个字符处( 移至该句首) 移至该句末{ 移至该段首} 移至该段末NG 移至该文件的第n列N+ 移至光标所在位置之后第n列n- 移至光标所在位置之前第n列(3)输入模式输入以下命令即可进入vi输入模式:a(append) 在光标之后加入资料A 在该行之末加入资料i(insert) 在光标之前加入资料I 在该行之首加入资料o(open) 新增一行于该行之下,供输入资料用O 新增一行于该行之上,供输入资料用Dd 删除当前光标所在行X 删除当前光标字符X 删除当前光标之前字符U 撤消·重做F 查找s 替换,例如:将文件中的所有"FOX"换成"duck",用":%s/FOX/duck/g"ESC 离开输入模式更多用法见 info vi三、GNU C编译器LINUX上可用的C编译器是GNU C编译器,它建立在自由软件基金会编程许可证的基础上,因此可以自由发布。

linux下的c语言编程实验报告

linux下的c语言编程实验报告

linux下的c语言编程实验报告Linux下的C语言编程实验报告一、引言C语言是一种广泛应用于系统软件和应用软件开发的编程语言,而Linux是一个非常流行的操作系统,因其开源和稳定性而被广泛使用。

本实验报告旨在介绍在Linux平台下进行C语言编程的实验过程和结果。

二、实验目的本实验的主要目的是通过在Linux操作系统上进行C语言编程实验,提高学生对C语言的理解和运用能力。

具体目标如下:1. 熟悉Linux环境下的C语言编程工具和开发环境;2. 掌握C语言的基本语法和常用函数;3. 理解C语言程序的运行原理和调试技巧;4. 学会使用C语言编写简单的程序解决实际问题。

三、实验过程1. 实验环境准备在开始实验之前,需要准备好以下环境:- 一台安装有Linux操作系统的计算机;- 一个文本编辑器,如Vim或Gedit,用于编写C语言程序;- GCC编译器,用于编译和运行C语言程序。

2. 实验步骤本实验主要包括以下几个步骤:- 编写C语言程序:根据实验要求,使用文本编辑器编写C语言程序,实现特定的功能;- 编译程序:使用GCC编译器将C语言程序编译成可执行文件;- 运行程序:在Linux终端中运行编译生成的可执行文件,验证程序的正确性;- 调试程序:如果程序存在错误或异常,使用调试工具如GDB进行调试,找出并修复问题;- 总结实验结果:根据实验结果总结和分析实验过程中遇到的问题和解决方法,得出结论。

四、实验结果根据实验要求,我们编写了一系列C语言程序,并在Linux环境下进行了测试。

以下是实验结果的一些例子:1. 实验一:编写一个程序,输出“Hello, World!”。

```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 实验二:编写一个程序,计算并输出两个整数的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d\n", sum);return 0;}```3. 实验三:编写一个程序,判断一个整数是否为偶数。

2-Linux下c语言开发环境

2-Linux下c语言开发环境
mkdir /root/Vi
b.进入“/Vi”目录。
cd /root/Vi
c.将文件“/etc/inittab”复制到“/Vi”目录下。
cp /etc/inittab./
d.使用Vi打开“/Vi”目录下的inittab。
Vi ./inittab
e.设定行号,指出设定initdefault的所在行号。
退出Gdb:q
重新编辑greet.c,把其中的“string2[size-1] =string1[i]”改为“string2[size-i-1] =string1[i];”。使用GCC重新编译,查看运行结果:./greet
The original string is Embedded Linux
The string afterward is xuniL deddedbmE
实验二:
实验目的
熟悉Linux下的C语言开发环境及流程;
熟练掌握Vi、GCC、GDB及Make等工具的使用;
理解makefile的作用及规则;
实验设备
硬件:PC;
软件:VMware Workstation虚拟机和Red Hat Enterprise 5.0操作系统;
实验预习要求
熟悉Linux下C语言开发流程;
图2-1 Linux环境下C源程序编译过程
2.
Vim是Vi编译器的增强版本,一般Linux发行版本中均以此工具为默认编译器。为提高编辑速度,Vi/Vim提供三种模式:命令模式、插入模式和底行模式,其间切换方法与对应模式作用如图2-2所示。
图2-2 Vi/Vim工作模式切换图
a.在“/root”目录下建一个名为“/Vi”目录下。
string2 = (char *)malloc(size + 1);

Linux环境下C语言编程实验报告

Linux环境下C语言编程实验报告

Linux环境下C语言编程实验报告Xi邮电大学(计算机学院)课堂实验报告实验名称:Linux环境下的C语言编程专业名称:网络工程班(3)掌握gdb调试方法2,实验内容1。

编辑测试源代码2.gcc编译测试源代码3。

gdb调试和调试3.实验步骤1。

编辑以下参考源代码。

该代码的初衷是以相反的顺序输出主函数中定义的字符串# include int display 1(char * string)。

int display 2(char *字符串);p I int main(){字符字符串[] = \nWelcom到Linux\display1(字符串);display2(字符串);}int display 1(char * string){printf(\ }int display 2(char * string 1){char * string 2;int大小,I;size = strlen(string 1);string 2 =(char *)malloc(size+1);对于(I = 0;I printf(\ }2。

使用gcc将参考源代码编译成可执行文件3.运行可执行文件,观察运行结果并记录下来4。

使用gdb调试器找出错误的原因,并通过设置断点和单步跟踪进行记录。

5.纠正错误,修改参考源代码并记录下来6。

使用gcc将参考源代码编译成可执行文件,观察运行结果并记录下来4.实验部分5的截图和描述,总结了Gcc和gdb确实是很好的工具,但是有些命令在的时候没有清晰的记忆,不能完全掌握,真正的魅力无法实现,还有很多参数需要在以后的实践中进一步研究。

我希望将来能继续经历这些。

gcc和gdb确实非常实用。

使用这些东西可以大大提高效率,特别是gdb和gdb。

Linux下C语言程序的编译与调试实验报告

Linux下C语言程序的编译与调试实验报告

实验2 Linux系统中程序编辑、编译与调试工具学院:计算机学院专业:软件工程姓名:张开学号:201207315指导老师:周围老师完成时间:2013年6月3日一、实验目的1.熟悉Linux下C语言编译调试环境。

2.学会使用gcc编译C程序。

3.学会使用gdb调试C程序。

二、实验内容1. 在Linux下,编写程序factorize.c,功能如下:输入一个int型整数,输出其因式分解结果。

2. 编译运行,生成可执行文件。

3. 用gdb调试该程序,找到错误并修改。

三、实验软件环境GCCGCC(GNU Compiler Collection,GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器。

GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布。

GCC是大多数类Unix操作系统(如Linux、BSD、Mac OS X等)的标准的编译器,GCC同样适用于微软的Windows。

GCC支持多种计算机体系芯片,如x86、ARM,并已移植到其他多种硬件平台。

GCC原名为GNU C编译器(GNU C Compiler),因为它原本只能处理C语言。

GCC很快地扩展,并支持处理C++。

后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go等。

GDBGDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。

或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。

所谓“寸有所长,尺有所短”就是这个道理。

一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。

2、可让被调试的程序在你所指定的调置的断点处停住。

(断点可以是条件表达式)。

3、当程序被停住时,可以检查此时你的程序中所发生的事。

Linux系统下C语言开发环境

Linux系统下C语言开发环境

Linux下C语言编程环境概述Linux下C语言编程常用的编辑器是vim或emacs,编译器一般用gcc,编译链接程序用make,跟踪调试一般使用gdb,项目管理用makefile。

下面先通过一个小程序来熟悉这些工具的基本应用。

各个工具的详细使用方法将在后面的各个章节逐步讲解。

(1) 要编辑C源程序,应首先打开vim或emacs编辑器,然后录入以下多段源代码。

使用main函数调用mytool1_print、mytool2_print这两个函数。

#include "mytool1.h"#include "mytool2.h"int main(int argc,char **argv){mytool1_print("hello");mytool2_print("hello");}(2) 在mytool1.h中定义mytool1.c的头文件。

/* mytool1.h */#ifndef_MYTOOL_1_H#define_MYTOOL_1_Hvoid mytool1_print(char *print_str);#endif(3) 用mytool1.c实现一个简单的打印显示功能。

/* mytool1.c */#include "mytool1.h"void mytool1_print(char *print_str){printf("This is mytool1 print %s\n",print_str);}(4) 在mytool2.h中定义mytool2.c头文件。

/* mytool2.h */Li nux C 编程2 程序 员 书库 #ifndef _MYTOOL_2_H#define _MYTOOL_2void mytool2_print(char *print_str);#endif(5) mytool2.c 实现的功能与mytool1.c 相似。

实验二Linux下C语言开发环境及程序调试 (1)

实验二Linux下C语言开发环境及程序调试 (1)

实验二Linux下C语言开发环境及程序调试一、实验目的1、熟悉Linux下的C语言程序编译流程。

2、掌握vi、gcc、gdb的使用。

二、实验设备硬件:PC机。

软件:VMware Workstation虚拟机、Linux操作系统。

三、实验预习要求1、gcc编译过程及常用编译选项。

2、gdb调试器使用流程,查看文件、设置断点、单步运行等gdb基本命令的使用。

四、实验内容及步骤1、Linux下C语言开发流程及GCC编译器的使用。

(1)启动虚拟机,进入Linux操作系统,然后启动终端。

(2)使用Vim编辑源程序,练习命令模式、编辑模式、底行模式之间的切换,在终端中输入vi hello.c,编辑完成后存盘。

(注:代码自己编写)(3)练习以下编译选项的使用:gcc -E hello.c -o hello.igcc -S hello.i -o hello.Sgcc -c hello.S -o hello.o //目标文件gcc hello.o -o hello //可执行文件(4)运行程序,在终端中查看程序运行结果。

2、GDB调试器的使用。

使用Vim编辑源程序,在终端中输入vi test.c,输入如下源代码,编辑完成后存盘。

此代码的功能为输出倒序main函数中定义的字符串,但结果没有输出显示,现通过调试的方式来解决程序中存在的问题。

程序源代码如下:#include <stdio.h>int display1 (char *string)int display2 (char *string1)int main (){char string[] = "Embedded Linux";display1 (string);display2 (string);}int display1 (char *string){ printf ("The original string is %s \n", string);}int display2 (char *string1){char *string2;int size,i;size = strlen (string1);string2 = (char *) malloc (size + 1);for (i = 0; i <= size; i++)string2[size - i] = string1[i];string2[size+1] = ' ';printf("The string afterward is %s\n",string2);}(1)用Gcc编译:gcc -g greet.c -o greet。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二Linux下C语言开发环境及程序调试
一、实验目的
1、熟悉Linux下的C语言程序编译流程。

2、掌握vi、gcc、gdb的使用。

二、实验设备
硬件:PC机。

软件:VMware Workstation虚拟机、Linux操作系统。

三、实验预习要求
1、gcc编译过程及常用编译选项。

2、gdb调试器使用流程,查看文件、设置断点、单步运行等gdb基本命令的使用。

四、实验内容及步骤
1、Linux下C语言开发流程及GCC编译器的使用。

(1)启动虚拟机,进入Linux操作系统,然后启动终端。

(2)使用Vim编辑源程序,练习命令模式、编辑模式、底行模式之间的切换,在终端中输入vi hello.c,编辑完成后存盘。

(注:代码自己编写)(3)练习以下编译选项的使用:
gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.S
gcc -c hello.S -o hello.o //目标文件
gcc hello.o -o hello //可执行文件
(4)运行程序,在终端中查看程序运行结果。

2、GDB调试器的使用。

使用Vim编辑源程序,在终端中输入vi test.c,输入如下源代码,编辑完成后存盘。

此代码的功能为输出倒序main函数中定义的字符串,但结果没有输出显示,现通过调试的方式来解决程序中存在的问题。

程序源代码如下:#include <stdio.h>
int display1 (char *string)
int display2 (char *string1)
int main ()
{
char string[] = "Embedded Linux";
display1 (string);
display2 (string);
}
int display1 (char *string)
{ printf ("The original string is %s \n", string);
}
int display2 (char *string1)
{
char *string2;
int size,i;
size = strlen (string1);
string2 = (char *) malloc (size + 1);
for (i = 0; i <= size; i++)
string2[size - i] = string1[i];
string2[size+1] = ' ';
printf("The string afterward is %s\n",string2);
}
(1)用Gcc编译:gcc -g greet.c -o greet。

(2)运行greet:./greet,查看输出结果是否正确。

(3)启动Gdb调试:gdb greet
查看源代码:l
在30行(for循环处)设置断点:b 30
在33行(printf函数处)设置断点:b 33。

查看断点设置情况:info b
运行代码:r
单步运行代码:n
查看暂停点变量值:p string2[size - i]
继续单步运行代码数次,并使用命令查看,发现string2[size-1]的值正确
继续程序的运行:c
程序在printf前停止运行,此时依次查看string2[0]、string2[1]…,找到程序运行结果不正确的原因。

退出Gdb:q
将程序修改正确并使用Gcc重新编译,查看运行结果:./greet
五、可选题
编程实现输入任意2个小于100的正整数a和b,然后输出100以内能同时整除a和b的所有数,并使用gcc和gdb编译和调试。

六、实验报告要求
认真记录调试过程和所有调试的程序代码。

相关文档
最新文档