实验报告一Linux下的C语言编程

合集下载

实验一 Linux下C编程

实验一 Linux下C编程

实验一Linux下C编程一、实验目的1、熟悉Linux常用命令。

2、掌握gcc编译器、gdb调试器的使用方法。

3、会编写多文件的C程序,并使用gcc编译。

4、熟悉makefile的结构和编制,利用make命令编译程序。

二、实验原理1、linux不以文件名后缀区分文件类型,但是通常将C源代码以.c结尾,事实证明,在使用GCC编译器时,是要求以.c结尾的。

2、在linux下,编写好的C程序需要编译为二进制的可执行文件才能运行;得到可执行文件要经过以下几个步骤:预处理→汇编→编译→链接→二进制可执行文件。

3、make工具,是程序的自动编译器。

利用时间戳检测文件修改的时间,查看当前哪些文件是更新的,只编译改变了的程序,是一个项目管理工具。

用于大型程序的编制,可节省时间,提高效率。

Makefile的基本格式:(1)目标体:目标文件/可执行文件。

(2)依赖文件。

(3)运行的命令(必须以Tab开头)。

Makefile具有隐含规则和模式规则。

隐含规则:同名的.c文件生成同名的.o文件,不用写main.o、print.o等的编译语句。

模式规则:相同名称的.c生成相同名称的.o文件,这种方式更加显式。

三、实验内容1、编写包含多文件的.c源码,通过调用自定义函数,实现功能:用户输入一个数字,程序计算并输出介于1至此数之间所有个位数为1的素数;如果不存在,则打印-1。

2、直接使用gcc编译多个源文件并运行结果。

3、通过创建动态链接库lib***.so,使得main函数调用自定义函数时,可使用动态链接库,编译生成运行结果。

4、编写Makefile文件,使用make编译并运行。

实验1:Linux下C语言编程实践

实验1:Linux下C语言编程实践

实验1 linux c语言编程实践一、实验目的1.掌握Linux环境下C程序的编辑、编译、运行等操作;2.掌握多文件的编译及连接;3.初步掌握gdb调试方法;二、实验任务与要求1.在Linux环境下C程序的编辑、编译与运行;2.多文件的编译及连接;3.应用gdb调试程序;三、实验工具与准备计算机PC机,Linux Ubuntu操作系统四、实验步骤与操作指导1.调试下列程序。

程序通过创建一个小型函数库,它包含两个函数,然后在一个示例程序中调用其中一个函数。

这两个函数分别是pro1和pro2。

按下面步骤生成函数库及测试函数库。

步骤1 为两个函数分别创建各自的源文件(将它们分别命名为pro1.c和pro2.c)。

[root@localhost root]# vi pro1.c#include <sdtio.h>void pro1(int arg){printf(“hello:%d\n”,arg) ;}[root@localhost root]# vi pro2.c#include <sdtio.h>void pro2(char *arg){printf(“您好:%s\n”,arg) ;}步骤2 分别编译这两个文件,生成要包含在库文件中的目标文件。

这通过调用带有-c 选项的gcc编译器来实现,-c选项的作用是阻止编译器创建一个完整的程序,gcc将把源程序编译成目标程序,文件名为以.o结尾。

如果此时试图创建一个完整的程序将不会成功,因为还未定义main函数。

[root@localhost root]# gcc -c pro1.c pro2.c[root@localhost root]# ls *.opro1.o pro2.o步骤3 现在编写一个调用pro2函数的程序。

首先,为库文件创建一个头文件lib.h。

这个头文件将声明库文件中的函数,它应该被所有希望使用库文件的应用程序所包含。

实验1Linux下C语言编程实践

实验1Linux下C语言编程实践

实验1Linux下C语言编程实践一、实验目的1.掌握Linu某环境下C程序的编辑、编译、运行等操作;2.掌握多文件的编译及连接;3.初步掌握gdb调试方法;二、实验任务与要求1.在Linu某环境下C程序的编辑、编译与运行;2.多文件的编译及连接;3.应用gdb调试程序;三、实验工具与准备计算机PC机,Linu某Ubuntu操作系统四、实验步骤与操作指导1.调试下列程序。

程序通过创建一个小型函数库,它包含两个函数,然后在一个示例程序中调用其中一个函数。

这两个函数分别是pro1和pro2。

按下面步骤生成函数库及测试函数库。

printf(“hello:%d\\n”,arg);}printf(“您好:%\\n”,arg);}步骤2分别编译这两个文件,生成要包含在库文件中的目标文件。

这通过调用带有-c选项的gcc编译器来实现,-c选项的作用是阻止编译器创建一个完整的程序,gcc将把源程序编译成目标程序,文件名为以.o结尾。

如果此时试图创建一个完整的程序将不会成功,因为还未定义main 函数。

步骤3现在编写一个调用pro2函数的程序。

首先,为库文件创建一个头文件lib.h。

这个头文件将声明库文件中的函数,它应该被所有希望使用库文件的应用程序所包含。

voidpro1(int);voidpro2(char某);pro2(“Linu某world”);e某it(0);}步骤5编译并测试程序。

暂时为编译器显式指定目标文件,然后要求编译器编译文件并将其与预先编译好的目标模块pro2.o链接。

步骤6创建并使用一个库文件。

用ar程序创建一个归档文件并将目标文件添加进去。

这个程序之所以称为ar,是因为它将若干单独的文件归并到一个大的文件中以创建归档文件。

注意,也可以用ar程序来创建任何类型文件的归档文件。

也可以用“-l”选项来访问函数库,但是因为其未保存在标准位置,所以必须用-L选项来指示gcc在何处可以找到它,如下所示:要查看目标文件、函数库或可执行文件里包含的函数,可以使用nm 命令。

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语言编程专业名称:网络工程班级:1203班学生姓名:学号(8位):指导教师:王亚刚实验日期:2014年12月3日一、实验目的(2)掌握gcc编译器使用方法。

(3)掌握gdb调试方法。

二、实验内容1.编辑测试源代码。

2. gcc编译测试源代码3. gdb调试和排错。

三、实验步骤1.编辑如下参考源代码,代码的原意为倒序输出main函数中定义的字符串#include <stdio.h>int display1(char *string);int display2(char *string);p iint main (){char string[] = "nnWelcom to 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);}2.使用gcc将参考源代码编译为可执行文件。

3.运行可执行文件,观察运行结果并记录。

4.使用gdb调试程序,通过设置断点、单步跟踪,找出错误原因并记录。

linux实训报告,在linux下用c语言写飞鸽传书

linux实训报告,在linux下用c语言写飞鸽传书

linux实训报告,在linux下用c语言写飞鸽传书摘要:一、引言1.背景介绍2.目的和意义二、Linux基本操作和环境搭建1.安装Linux操作系统2.配置开发环境三、飞鸽传书的设计与实现1.通信协议概述2.消息传输流程3.模块划分四、飞鸽传书功能的实现1.编写发送端程序2.编写接收端程序3.程序调试与优化五、总结与展望1.项目收获2.不足与改进正文:随着互联网的快速发展,即时通讯软件成为了人们日常生活中必不可少的工具。

在Linux操作系统下,使用C语言实现一款简单的飞鸽传书软件具有较高的实用价值。

本文将介绍如何在Linux环境下使用C语言编写飞鸽传书,并对其功能进行简要概述。

一、引言1.背景介绍Linux操作系统作为一款开源、免费的操作系统,得到了广泛的应用。

在Linux下使用C语言进行编程可以充分发挥系统性能,同时也可以提高开发者的编程能力。

飞鸽传书作为一种即时通讯工具,在Linux下实现可以满足基本的通信需求。

2.目的和意义通过本篇文章,读者可以学会在Linux环境下使用C语言编写飞鸽传书软件,了解其基本原理和实现方法。

此外,本教程还可以提高读者对于Linux系统和C语言编程的熟练程度,为以后更深入的学习和实践打下基础。

二、Linux基本操作和环境搭建1.安装Linux操作系统首先,我们需要安装一款Linux操作系统。

常见的Linux发行版有Ubuntu、CentOS等。

在这里,我们以Ubuntu为例进行说明。

通过官方网站下载Ubuntu操作系统镜像文件,然后使用镜像安装工具进行安装。

2.配置开发环境安装完成后,我们需要配置开发环境。

首先,更新系统软件包列表,然后安装必要的开发工具,如GCC、Make等。

接下来,创建一个用于存放项目的目录,并进入该目录。

最后,创建一个名为“main.c”的源代码文件,准备编写飞鸽传书程序。

三、飞鸽传书的设计与实现1.通信协议概述飞鸽传书采用客户端/服务器端通信模式。

linux实训报告,在linux下用c语言写飞鸽传书

linux实训报告,在linux下用c语言写飞鸽传书

linux实训报告,在linux下用c语言写飞鸽传书摘要:一、引言1.实训背景2.实训目的3.实训内容二、Linux操作系统简介1.Linux的发展历史2.Linux的特点3.Linux的常用命令三、C语言编程基础1.C语言简介2.C语言基本语法3.C语言编程实践四、在Linux下用C语言编写飞鸽传书程序1.程序设计思路2.程序实现过程3.程序测试与优化五、总结与展望1.实训成果总结2.实训过程中的问题与反思3.未来发展方向正文:一、引言随着互联网技术的不断发展,网络通信已经成为现代社会不可或缺的一部分。

Linux操作系统作为一种开源的、高效的操作系统,受到了越来越多开发者的青睐。

C语言作为一门通用的编程语言,在Linux操作系统中有着广泛的应用。

本次实训报告,将在Linux环境下,使用C语言编写一款模拟古代飞鸽传书的程序,以提高同学们对Linux操作系统和C语言编程的理解和应用能力。

二、Linux操作系统简介Linux是一套免费使用和自由传播的类Unix操作系统,其内核由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。

Linux操作系统具有良好的稳定性、高度可定制性和优秀的网络功能,广泛应用于服务器、嵌入式设备等领域。

在本次实训中,我们将使用Linux操作系统作为开发环境,学习C语言编程。

1.Linux的发展历史Linux操作系统的前身是Unix,由肯·汤普逊(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)于20世纪70年代在贝尔实验室开发。

由于Unix 的版权问题,林纳斯·托瓦兹开始着手开发Linux内核,以实现一个自由传播的类Unix操作系统。

如今,Linux操作系统已经发展成一个庞大的社区,拥有众多发行版,如Ubuntu、CentOS等。

2.Linux的特点Linux操作系统具有以下特点:(1)开源:Linux的源代码可以自由获取和使用,这使得开发者可以深入研究操作系统的工作原理,提高自己的技能水平。

linux编程实验报告

linux编程实验报告

linux编程实验报告Linux编程实验报告一、引言在计算机科学领域中,Linux操作系统一直以其开源、稳定和灵活的特性而受到广泛关注和使用。

作为一名计算机科学专业的学生,我有幸参与了一项关于Linux编程的实验,并在此报告中分享我的实验结果和心得体会。

二、实验目的本次实验的目的是通过编写Linux程序,熟悉Linux操作系统的基本命令和编程环境。

具体而言,我们需要使用C语言编写一个简单的程序,实现文件的读取、写入和修改等功能,并在Linux环境下进行测试和验证。

三、实验过程1. 环境准备在开始实验之前,我们首先需要确保已经安装了Linux操作系统,并具备基本的命令行操作能力。

此外,我们还需要安装C语言编译器,以便能够编译和运行我们的程序。

2. 编写程序根据实验要求,我们需要编写一个程序,实现文件的读写功能。

在编写程序之前,我们先进行了详细的需求分析和设计,确定了程序的基本架构和功能模块。

3. 调试和测试在编写完程序之后,我们进行了一系列的调试和测试工作,以确保程序的正确性和稳定性。

我们使用了一些常见的测试用例,包括读取已存在的文件、写入新文件以及修改已有文件等情况,并对程序的输出结果进行了验证。

四、实验结果经过多次的调试和测试,我们最终得到了一个功能完善、稳定可靠的程序。

该程序能够准确地读取、写入和修改文件,并能够处理各种异常情况,如文件不存在、权限不足等。

五、实验心得通过参与这次实验,我收获颇多。

首先,我对Linux操作系统的理解更加深入了。

在实验过程中,我学会了使用Linux的命令行工具,熟悉了Linux的文件系统和权限管理机制。

其次,我对C语言的编程能力也得到了提升。

在编写程序的过程中,我学会了使用C语言的文件操作函数和错误处理机制,提高了自己的编程技巧。

此外,我还意识到编程实践的重要性。

通过亲自动手编写程序,我不仅仅是理论上了解了Linux的一些特性,更重要的是深入了解了其背后的设计原理和实现细节。

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;}重新编译程序并执行,可以看到在终端中会提示用户输入姓名,并输出相应的问候语。

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实训报告,在linux下用c语言写飞鸽传书

linux实训报告,在linux下用c语言写飞鸽传书

linux实训报告,在linux下用c语言写飞鸽传书【原创版】目录:1.实训报告背景及目的2.Linux 操作系统与 C 语言简介3.飞鸽传书软件概念与实现4.飞鸽传书在 Linux 下的实现过程5.总结与展望正文【实训报告背景及目的】本报告是为了展示在 Linux 环境下,使用 C 语言编写一个简单的飞鸽传书程序的过程。

飞鸽传书是一款基于网络的即时通讯软件,通过在本地计算机上运行客户端,可以实现与好友之间的文字、图片、文件等传输。

本报告旨在帮助读者了解如何在 Linux 环境下编写 C 语言程序,并实现基本的即时通讯功能。

【Linux 操作系统与 C 语言简介】Linux 是一个免费、开源的操作系统,广泛应用于服务器和个人计算机领域。

C 语言是一种通用的、过程式的计算机编程语言,因其高效、灵活的特性,在操作系统开发、嵌入式系统等领域有着广泛的应用。

Linux 系统与 C 语言的结合,为广大开发者提供了一个良好的开发环境。

【飞鸽传书软件概念与实现】飞鸽传书是一款基于网络的即时通讯软件,其核心功能是实现客户端与服务器之间的数据传输。

客户端程序负责发送和接收消息,服务器程序负责处理客户端的连接请求、转发消息等。

飞鸽传书软件的实现主要包括以下几个方面:1.客户端程序:客户端程序需要实现登录、发送消息、接收消息、退出等功能。

2.服务器程序:服务器程序需要实现监听客户端连接请求、处理客户端消息、转发消息等功能。

3.数据传输:客户端与服务器之间的数据传输采用 TCP 协议,以保证数据的可靠性。

【飞鸽传书在 Linux 下的实现过程】在 Linux 环境下,使用 C 语言编写飞鸽传书程序主要包括以下几个步骤:1.创建项目:使用 C 语言编译器(如 gcc)创建一个新的项目,为项目创建必要的目录结构。

2.编写代码:编写客户端和服务器程序的代码,实现上述提到的各个功能。

3.编译与调试:使用编译器编译程序,并运行调试,以确保程序的正确性。

实验报告一Linux下的C语言编程

实验报告一Linux下的C语言编程

计算机系统基础实验报告学院信电学院专业计算机班级1401学号140210110 姓名段登赢实验时间:一、实验名称:Linux下的C语言编程二、实验目的和要求:实验目的:(1)掌握VMware虚拟机的使用及Linux操作系统的安装;(2)熟练Linux操作系统的基本使用;(3)掌握GCC编译环境的使用;实验要求:描述你的分析过程;说明你做实验的过程(重要步骤用屏幕截图表示);提交源程序和可执行文件。

三、实验环境(软、硬件):硬件:个人电脑一台软件:在虚拟机Vmware上的UbuntuGCC编辑器:vi编辑器四、实验内容:要求:在GCC编译环境下用C语言编程完成下列题目。

(1)人口普查(2)旧键盘(3)集体照1、常用的Linux命令总结Tab 快捷键,自动补全切换用户:格式su [用户名];su - root查看目录和文件:格式ls [-a -l ] [目录和文件],其中-a是显示目录下所有的文件和目录(含隐藏文件)-l是显示目录下的文件和目录的详细信息改变工作目录:格式cd /目录名;cd .. 返回上一目录复制文件:格式cp [ -r ] 源文件或目录目标文件和目录,其中-r是复制目录移动或更名:格式mv 源文件目标文件删除文件或目录:格式rm [ -r ] 文件名或目录名,其中-r是删除目录创建目录:格式mkdir 目录名查看目录大小:格式du 目录名压缩文件:格式gzip [-d] 文件名,其中-d是解压缩打包文件:格式tar 目录或文件解包文件:格式xvf 目录或文件终止程序:Ctrl+c后台运行:Ctrl+zGcc编译:格式gcc [-o -O -c -g -w] 文件名,其中-o是确定输出自定义文件的名字,-O对程序的编译和链接进行优化,-c是不进行链接,生成.o后缀的文件,-g是产生调试工具,-w 不生成警告信息。

2. 在Linux系统中对所给的题目进行编程和分析(1)打开虚拟机运行ubuntu(2)打开虚拟机终端(ctrl+Alt+T)(3)键入命令cd /home/duan/桌面进入到桌面(4)键入命令mkdir shiyan,创建名字为shiyan的文件夹,更改用户权限(5)然后cd /shiyan进入的shiyan文件夹里面(6)键入命令touch renkou.c创建.c文件。

Linux下的C语言编程实验报告

Linux下的C语言编程实验报告
zhangshan
[root@localhost home]# echo $name1
zhang san
[root@localhost home]# echo $name2
zhang san
[root@localhost home]#
7.env系统变量
管理模式1
显示passwd中的第一列|命令
[root@localhost home]# cat /etc/passwd |cut -d ":" -f1
(.text+0x18): undefined reference to `main'
collect2: ld返回1
[root@localhost home]# . /a.out
bash: /a.out:没有那个文件或目录
[root@localhost home]# gcc test.c -o test.i
调用Linux的shell来执行<command string>,环境变量SHELL中定义的Linux的shell将会用来执行<command string>。如果SHELL没有定义,那就使用Linux的标准shell:/bin/sh(在Windows中使用或cmd.exe)。
Gcc的警告提示功能
gcc包含完整的出错检查和警告提示功能,它们可以帮助Linux程序员尽快找到错误代码,从而写出更加专业和优美的代码。先来读读例3-2所示的程序,这段代码写得很糟糕,仔细检查一下不难挑出如下毛病:
main函数的返回值被声明为void,但实际上应该是int;
使用了GNU语法扩展,即使用long long来声明64位整数,仍不符合ANSI/ISO 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. 实验三:编写一个程序,判断一个整数是否为偶数。

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。

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

计算机系统基础实验报告
学院信电学院专业计算机班级1401
学号140210110 姓名段登赢实验时间:
一、实验名称:Linux下的C语言编程
二、实验目的和要求:
实验目的:
(1)掌握VMware虚拟机的使用及Linux操作系统的安装;
(2)熟练Linux操作系统的基本使用;
(3)掌握GCC编译环境的使用;
实验要求:
描述你的分析过程;说明你做实验的过程(重要步骤用屏幕截图表示);提交源程序和可执行文件。

三、实验环境(软、硬件):
硬件:个人电脑一台
软件:在虚拟机Vmware上的Ubuntu
GCC编辑器:vi编辑器
四、实验内容:
要求:在GCC编译环境下用C语言编程完成下列题目。

(1)人口普查
(2)旧键盘
(3)集体照
1、常用的Linux命令总结
Tab 快捷键,自动补全
切换用户:格式su [用户名];su - root
查看目录和文件:格式ls [-a -l ] [目录和文件],其中-a是显示目录下所有的文件和目录(含隐藏文件)-l是显示目录下的文件和目录的详细信息
改变工作目录:格式cd /目录名;cd .. 返回上一目录
复制文件:格式cp [ -r ] 源文件或目录目标文件和目录,其中-r是复制目录
移动或更名:格式mv 源文件目标文件
删除文件或目录:格式rm [ -r ] 文件名或目录名,其中-r是删除目录
创建目录:格式mkdir 目录名
查看目录大小:格式du 目录名
压缩文件:格式gzip [-d] 文件名,其中-d是解压缩
打包文件:格式tar 目录或文件
解包文件:格式xvf 目录或文件
终止程序:Ctrl+c
后台运行:Ctrl+z
Gcc编译:格式gcc [-o -O -c -g -w] 文件名,其中-o是确定输出自定义文件的名字,-O对程序的编译和链接进行优化,-c是不进行链接,生成.o后缀的文件,-g是产生调试工具,-w 不生成警告信息。

2. 在Linux系统中对所给的题目进行编程和分析
(1)打开虚拟机运行ubuntu
(2)打开虚拟机终端(ctrl+Alt+T)
(3)键入命令cd /home/duan/桌面进入到桌面
(4)键入命令mkdir shiyan,创建名字为shiyan的文件夹,更改用户权限
(5)然后cd /shiyan进入的shiyan文件夹里面
(6)键入命令touch renkou.c创建.c文件。

如下图所示
(7)键入命令gcc renkou.c进行编译c程序,生成可执行文件。

(8)键入命令./a.out运行可执行文件,如下图所示。

五、实验结果及分析:
1、人口普查
实验结果:
过程分析:
(1)定义三个char类型的数组,a[100]用来存储输入的名字信息,a1[100]用来存储最小年龄的名字,a2[100]用来存储最大年龄的名字。

(2)利用y = y * 10000 + m * 100 + d; 把输入的生日信息转换成一个个可以用来比较大小的数字。

(3)由题目给出的条件可以得到合法的年龄的数字的区间是:[ 18140906,20140906 ],第一次数字之间的大小的比较判断合法的年龄并用count记录合法的次数;第二次比较大小判断出年龄最长和最年轻的人,利用strcpy(a1, a)函数把名字信息存储到数组中去。

(4)按照题目所给的格式打印输出
2、旧键盘
实验结果:
过程分析:
(1)定义两个char类型的数字s1,s2分别用来存储第一次和第二次输入的字符。

(2)定义一个char类型的数组s_output用来存储坏键的字符。

(3)利用for循环遍历s1中的每一个字符,再使用strchr(s2,s1[i])判断坏键以及判断坏键没有重复出现。

(4)利用s1[i]-=32把小写字母转换成大写字母。

(5)把坏键的字符放入s_output中。

(6)打印输出s_output数组。

3、集体照
实验结果:
过程分析:
(1)首先定义一个含有姓名和身高的结构体,命名为info。

(2)使用动态内存分配函数malloc(n*sizeof(info))产生一个动态的info类型的数组group,用来存储输入的信息。

再产生一个普通的动态数组result,用来存储输出的信息。

(3)使用qsort(group,n,sizeof(info),compare)函数把group中的信息按照身高从大到小进行排列。

(4)利用公式cols=total-n/k*(k-i-1);计算每一排的人数。

(5)利用公式result[offset+cols/2+(j%2==0?-j/2:j/2)]=id++;把group数组的下标按照题目所给的要求放到result数组中。

(6)输出时按照result数组下标找到group数组的下标并且按照result数组的下标输出。

六、实验心得
通过这次实验我首先学到了虚拟机的安装和Linux系统的使用方法,第一次接触命令行操作确实感到特别的烦躁,但之后我学会了如何使用Linux的gcc编译器。

在用gcc编译运行的过程中,我又一次复习了C语言的基础内容,也学到了一些自己曾经没有使用过的库函数。

总之,通过这次实验收获满满,成就感十足。

相关文档
最新文档