实验二Linux下C语言开发环境及程序调试 (1)
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)编辑器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程序设计实验报告

实验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语⾔开发环境学习项⽬内容作业所属课程作业要求学号-姓名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程序的实验报告一、引言(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操作系统的开发环境。
我选择了Ubuntu作为我的开发平台,并安装了gcc编译器和其他必要的工具。
在这个过程中,我学会了如何在Linux系统中安装软件包,配置环境变量以及使用命令行工具进行开发。
实验二:基本程序设计在这一部分,我们需要编写一些简单的程序来熟悉Linux系统的编程环境。
我选择了C语言作为主要的开发语言,因为在Linux系统中C语言是最常用的编程语言之一。
通过编写一些简单的程序,我学会了如何在Linux系统中进行编译、链接和调试。
实验三:文件操作在Linux系统中,文件操作是一个非常重要的部分。
在这个实验中,我们需要编写一些程序来进行文件的读写操作。
我学会了如何使用系统调用来打开、读取和写入文件,以及如何处理文件操作中可能出现的错误。
实验四:进程管理Linux系统是一个多进程的操作系统,因此进程管理是一个非常重要的主题。
在这个实验中,我学会了如何创建新进程、进行进程间通信以及处理进程的状态变化。
通过编写一些简单的多进程程序,我加深了对Linux系统进程管理的理解。
总结通过这次实验,我对Linux系统的程序设计有了更深入的了解。
我学会了如何搭建开发环境、进行基本的程序设计、进行文件操作以及进行进程管理。
这些知识不仅对我未来的学习和工作有着重要的意义,也为我进一步深入学习Linux 系统打下了坚实的基础。
希望通过不断的实践和学习,我能够在Linux系统的程序设计领域有所建树。
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)编辑器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. 实验九:网络编程
数据流套接字的编程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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编译和调试。
六、实验报告要求
认真记录调试过程和所有调试的程序代码。