Linux程序开发和C程序编译实验报告

合集下载

Linux实验报告3 使用gcc编译C程序 11计科 张慧

Linux实验报告3 使用gcc编译C程序 11计科 张慧

Linux实验报告一.实验目的1.掌握Linux环境下的基本操作命令。

2.使用gcc编写简单的C程序,编译运行和调试。

二.实验环境VMware虚拟机、Ubuntu三.预备知识gcc的一些重要参数1. -I 指定头文件搜索路径(I 表include)如 $gcc -c hello.c -o hello.o -I/usr/include.-L 指定要连接的库所在的目录 -l 指定要连接的库的名字如$gcc main.o -L/usr/lib -lqt -o hello3. -D 定义宏(D-define)-D定义宏有两种情况,一种是-DMACRO 相当于程序中使用#define MACRO 另外可以-DMACRO=A 相当于程序中使用#define MACRO A 这只是一个编绎参数,在连接时没有意义.如: $gcc -c hello.c -o hello.o –DDEBUG4. -g 生成调试信息-g生成调试信息,这对使用gdb进行调试是必须的。

带有调试信息的文件要比普通文件要大,但不影响运行,可以用strip命令除于其中的调试信息5. -c指于gcc只进行编绎,不连接6. -ansi 指示gcc只支持ansi c标准语法7. -o 指定输出文件名8. -O 指定优化处理-O0不优化 -O1或-O 一级优化 -O2 二级优化...-O3,-O4级别越高,,代码越优,编绎时间越长。

9. -m486 针对特定的目标计算机进行优化,默认是38610. -w 关闭编译器警告信息四.实验内容使用gcc创建一个简单的程序,使程序输出语句“my name is zhanghui”.五.实验步骤5.1 创建zhanghui.c的文件5.2 编辑如下内容,然后保存退出:#include<stdio.h>main(){printf(“my name is zhanghui”);}4.2 创建成功后编译zhanghui.c4.3执行a.out,得到结果如下:五.心得体会通过本次实验我更加熟悉vi编辑器的使用了,能熟练使用一些操作指令,可以在linux操作平台上编写一段C语言小代码,实现对其的输出。

linux实验报告3 Linux上C程序编译,调试和工程文件管理

linux实验报告3 Linux上C程序编译,调试和工程文件管理

深圳大学实验报告课程名称:Linux操作系统实验项目名称:Linux上C程序编译,调试和工程文件管理学院:计算机与软件学院专业:软件工程指导教师:冯禹洪报告人:文成学号:2011150259 班级:02 实验时间:2013/12/31实验报告提交时间:2013/12/31教务处制一、实验目标:熟悉Linux上C程序设计环境,包括以下内容:1. 联机帮助man命令2. 编译工具gcc的使用3. 熟悉使用gdb来调试程序4. 熟悉C工程文件的管理工具makefile二、实验环境与工件湖边Linux实验室Fedora 13三、实验内容与步骤1.动态库函数可以在多个应用程序之间共享,可以减少应用程序文件的容量和应用程序的装载时间。

因此,熟悉构建动态库可以提高软件的编写质量。

请跟随以下步骤构建动态库message,并用其编写程序、编译和运行。

(40分)1.1编写源程序message.c(见图1)和main.c(见图2)图1. message.c源程序图2.main.c源程序1.2用以下命令对message.c进行编译,其中,“-fPIC”选项是告诉gcc产生的代码不要包含对函数和变量具体内存位置的引用。

1.3以上命令将获得目标文件message.o,使用以下命令建立共享函数库message:1.4使用1.3获得的共享函数库来编译main.c文件1.5设置共享函数库搜索路径1.6运行程序并附上结果1.7构建静态可执行程序1.7.1$gcc –c message.c1.7.2$ar –crv libmsg.a message.o1.7.3$gcc –o main main.c –L./ -lmsg1.7.4$./main1.8运行以下两个命令并截图说明结果:$ldd goodbye$ldd main$ls –l goodbye main/*附加题:经观察,如果用ubuntu, main 和googbye的大小在一些发行版本下没有区别,如果实验如此,请尝试解释这一现象。

实验报告linux编程

实验报告linux编程

实验报告linux编程实验报告:Linux编程引言:Linux操作系统是一种开源的操作系统,具有高度的灵活性和可定制性。

在本次实验中,我们将探索Linux编程的基本概念和技术。

通过编写简单的程序,我们将了解Linux系统的工作原理以及如何利用其强大的功能来开发应用程序。

一、Linux操作系统简介Linux操作系统是一种基于Unix的开源操作系统,它由许多不同的组件组成,包括内核、命令行工具和图形界面等。

Linux操作系统具有许多优势,如稳定性、安全性和可扩展性。

它广泛用于服务器、嵌入式设备和个人电脑等领域。

二、Linux编程环境搭建1. 安装Linux操作系统:选择适合自己的Linux发行版,如Ubuntu、Fedora等,并按照官方指南进行安装。

2. 安装开发工具:在Linux系统上进行编程需要安装一些开发工具,如GCC编译器、GNU调试器(GDB)等。

三、Linux编程基础1. Shell脚本编程:Shell是Linux系统的命令行解释器,通过编写Shell脚本可以实现自动化任务和批处理任务。

Shell脚本使用一些特定的语法和命令来执行任务。

2. C语言编程:C语言是Linux系统中最常用的编程语言之一,通过编写C程序可以实现更高级的功能。

C语言提供了丰富的库函数和系统调用,可以与Linux系统进行交互。

四、Linux系统编程1. 进程管理:Linux系统是一个多进程的操作系统,通过编写程序可以创建、管理和控制进程。

可以使用fork()和exec()等系统调用来创建新进程,使用wait()和kill()等系统调用来管理进程。

2. 文件操作:Linux系统中的文件操作是非常重要的一部分,通过编写程序可以实现文件的读取、写入和修改等功能。

可以使用open()、read()和write()等系统调用来进行文件操作。

3. 网络编程:Linux系统支持网络编程,通过编写程序可以实现网络通信的功能。

可以使用socket()和bind()等系统调用来创建和管理网络套接字。

编译linux实验报告

编译linux实验报告

编译linux实验报告
编译Linux实验报告
在计算机科学领域,Linux操作系统一直被广泛使用。

它是一个开放源代码的操作系统,具有稳定性和安全性。

在本次实验中,我们将学习如何编译Linux内核,并撰写实验报告以记录我们的实验过程和结果。

实验目的:
1. 了解Linux内核的编译过程
2. 熟悉编译工具和技术
3. 掌握编译过程中可能遇到的问题和解决方法
实验步骤:
1. 下载Linux内核源代码
2. 解压源代码并配置编译环境
3. 使用make命令编译内核
4. 安装编译后的内核
5. 测试新内核的稳定性和功能
实验结果:
经过一系列的操作,我们成功地编译了Linux内核,并将其安装到我们的计算机上。

新内核的稳定性和功能得到了验证,证明我们的编译过程是成功的。

实验总结:
通过本次实验,我们不仅了解了Linux内核的编译过程,还学习了如何使用编译工具和技术。

在实验过程中,我们遇到了一些问题,但通过查阅资料和尝试不同的解决方法,最终成功地完成了编译过程。

这次实验为我们提供了宝贵的
经验,也增强了我们对Linux操作系统的理解和掌握。

总的来说,编译Linux内核的实验是一次有意义的学习过程,我们通过实践提升了自己的技能和知识水平。

希望在未来的学习和工作中,能够运用这些经验和技能,为我们的计算机科学之路增添更多的成就和贡献。

linux编程实验报告

linux编程实验报告

linux编程实验报告篇一:Linux程序设计实验报告《Linux程序设计》实验报告安徽工业大学计算机学院XX年6月1实验一 Linux基本命令的使用1、实验目的学习和掌握Linux的基本命令。

2、实验内容和步骤步骤1:以user_login用户身份并使用telnet登录Linux服务器,按照提示创建自己的账户和口令。

步骤 2:使用新创建的用户账户和口令登录Linux系统,察看登录后的界面。

步骤3:使用pwd命令察看当前的工作目录,然后用ls 命令查看当前目录下的内容,尝试使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。

步骤4:在当前目录下建立一个名为test的新目录,然后将工作目录切换到test下,尝试将/etc目录下的文件passwd拷贝到该目录下(cp 源文件目的目录)。

察看当前目录下的passwd文件的属主和文件权限。

2步骤5:尝试向当前目录下的passwd文件和/etc/passwd 文件分别写入一些新内容(可使用echo “字符串” >>文件的命令),看看操作能否成功,如果不能成功,请说明原因。

用cat命令浏览文件password的内容,用more命令进行浏览翻页操作,再用less命令浏览文件的内容。

比较这几个命令的不同之处步骤6:用ls命令查看test下文件的权限,用mv命令更改文件password的文件名为test.txt,尝试用chown和chgrp更改文件的属主为root、组为root,看看能否成功,不成功,请说明原因。

尝试用chomd将文件权限为“-rw-------”。

看看能否成功,不成功,请说明原因。

3步骤7:用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。

(想一想有没有一条命令将目录及目录下的所有文件删除,写出这条命令)步骤8:使用ps命令查看当前系统内的进程,并利用man命令获取ps命令的参数,写出获取当前终端进程执行情况的ps命令。

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

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程序及运行结果

实验内容:
消息的创建,发送和接收
使用系统调用msgget(),msgsnd(), msgrev()及msgctl()编制一长度为1k的消息发送
和接收程序。
<程序设计>
为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,
SERVER和CLIENT,进行通信。
SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。当遇到类型
if(p2==0) putchar('c');
else putchar('a');
}
}
进程1截图如下:
进程2程序如下:
#include <stdio.h>
main( )
{
int p1,p2,i; while((p1=fork( ))==-1);
/*创建子进程p1*/
if (p1==0)
while((i=fork())==-1);
if(!i) CLIENT();
wait(0);
wait(0);
}
实验截图如下:
实验四 存储管理
1 实验目的:
通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。
2 实验内容:
通过随机数产生一个指令序列,共320条指令;
int tm_mon; //代表目前月份,从一月算起,范围从0-11 int tm_year; //从1900 年算起至今的年数
int tm_wday; //一星期的日数,从星期一算起,范围为0-6 int tm_yday; //从今年1月1日算起至今的天数,范围为0-365
int tm_isdst; //日光节约时间的旗标 };

linux编程 实验报告

linux编程 实验报告

linux编程实验报告Linux编程实验报告一、引言Linux操作系统是一种自由开源的操作系统,具有稳定性、安全性和灵活性等优点,被广泛应用于服务器、嵌入式系统和个人电脑等领域。

本实验旨在通过编程实践,探索Linux编程的基本概念和技术,并通过实验结果验证相关理论。

二、实验目的本实验的主要目的是通过编写C语言程序,理解Linux系统调用的原理和使用方法。

具体目标包括:1. 熟悉Linux系统调用的概念和基本原理;2. 掌握Linux系统调用的常用函数及其使用方法;3. 理解文件操作、进程管理和网络编程等方面的基本知识。

三、实验环境本实验使用的实验环境为Ubuntu 20.04 LTS操作系统。

在该系统上,我们可以使用gcc编译器编译C语言程序,并通过终端执行程序。

四、实验内容1. 文件操作文件操作是Linux编程中的重要内容之一。

通过使用系统调用函数,我们可以实现对文件的读写、创建和删除等操作。

在本实验中,我们编写了一个简单的文件复制程序,实现将一个文件的内容复制到另一个文件中。

2. 进程管理进程是Linux系统中的基本执行单元。

通过创建和管理进程,我们可以实现并发执行和多任务处理等功能。

在本实验中,我们编写了一个简单的多进程程序,实现同时执行多个任务的效果。

3. 网络编程网络编程是Linux编程中的一个重要领域,它涉及到网络通信、套接字编程和网络协议等内容。

在本实验中,我们编写了一个简单的客户端-服务器程序,实现了基于TCP协议的网络通信。

五、实验结果与分析通过实验,我们成功编写了文件复制程序、多进程程序和客户端-服务器程序,并在实验环境中运行和测试了这些程序。

实验结果表明,我们对Linux编程的基本概念和技术有了初步的理解和掌握。

在文件复制程序中,我们使用了open、read和write等系统调用函数,实现了将源文件的内容复制到目标文件中。

通过实验测试,我们发现该程序能够正确地复制文件,保持了源文件的内容和结构。

linux程序设计实验报告

linux程序设计实验报告

linux程序设计实验报告Linux程序设计实验报告引言在计算机科学领域,操作系统是一项至关重要的基础设施。

Linux作为一种开源的操作系统,具有广泛的应用和开发者社区。

本次实验旨在通过Linux程序设计,深入了解Linux操作系统的内部机制和编程技巧。

一、实验背景与目的Linux操作系统以其稳定性、安全性和灵活性而闻名。

本次实验的目的是通过编写Linux程序,探索Linux操作系统的核心原理和实践技巧。

通过实践操作,我们可以更好地理解Linux内核、进程管理、文件系统和网络通信等方面的工作原理。

二、实验环境与工具本次实验使用的实验环境为Ubuntu操作系统,我们将使用C语言进行程序设计。

以下是本次实验所用到的工具和软件:1. Ubuntu 18.04 LTS操作系统2. GCC编译器3. GNU Make工具4. Vim文本编辑器三、实验内容与步骤1. 进程管理在Linux操作系统中,进程是程序的执行实例。

我们将通过编写一个简单的多进程程序来理解进程的创建、调度和终止。

首先,我们需要使用fork()系统调用创建一个新的子进程。

然后,通过exec()系统调用加载一个新的程序到子进程中。

最后,使用wait()系统调用等待子进程的结束并回收资源。

2. 文件系统Linux操作系统中的文件系统是一种层次化的存储结构。

我们将通过编写一个简单的文件读写程序来理解文件系统的基本操作。

首先,我们需要使用open()系统调用打开一个文件,并指定读写权限。

然后,使用read()和write()系统调用读取和写入文件的内容。

最后,使用close()系统调用关闭文件。

3. 网络通信Linux操作系统提供了丰富的网络通信功能。

我们将通过编写一个简单的网络通信程序来理解网络套接字的使用。

首先,我们需要使用socket()系统调用创建一个套接字,并指定通信协议。

然后,使用bind()系统调用将套接字绑定到指定的IP地址和端口号。

Linux系统Makefile编写与GCC编译实验报告

Linux系统Makefile编写与GCC编译实验报告

实验报告实验题目Linux系统Makefile编写与GCC编译实验姓名:学号:课程名称:所在学院:专业班级:任课教师:四、实验过程、步骤及内容(一)GCC编译1、准备环境2、建立相关目录$ cd workdir/linux/application$ mkdir 6-gcc3、将代码从共享目录拷入虚拟机L inux 操作系统下;(可使用【crtl+空格】切换输入法)$ cp /mnt/hgfs/share/实验代码/03.\ Linux 系统GCC 编译器的使用实验/实验代码/* 6-gcc/ -a$ cd 6-gcc/4、编译代码$ arm-none-linux-gnueabi-gcc helloworld.c -o hello$ mkdir /source/rootfs/app$ cp hello /source/rootfs/app/5、执行代码通过tftp 下载内核,nfs 挂载文件系统,启动开发板。

在开发板串口终端执行应用程序。

# cd /app# ./hello6、相关代码:#include <stdio.h>int main (int argc,char **argv){printf("hello,world!\n");return 0;}(二)Makefile编程1、环境准备2、建立相关目录$ cd workdir/linux/application$ mkdir 7-Makefile3、将代码从共享目录拷入虚拟机L inux 操作系统下;(可使用【crtl+空格】切换输入法)$ cp /mnt/hgfs/share/实验代码/05.\ Linux 系统Makefile 编写实验/实验代码/5.2/makefileTest/* 7-Makefile/ -a$ cd 7-Makefile/4、执行代码进入makefileTest 目录,执行make。

$ make CLEAN$ make会出现如下信息:5、在开发板上执行通过tftp下载内核,nfs挂载文件系统,启动开发板6、相关代码:CC = arm-none-linux-gnueabi-gcc SUBDIRS = f1 \f2 \main \objOBJS = f1.o f2.o main.oBIN = myappOBJS_DIR = objBIN_DIR = binexport CC OBJS BIN OBJS_DIR BIN_DIRall : CHECK_DIR $(SUBDIRS)cp bin/myapp /source/rootfs/app CHECK_DIR :mkdir -p $(BIN_DIR) $(SUBDIRS) : ECHOmake -C $@ECHO:@echo $(SUBDIRS)@echo begin compileCLEAN :@$(RM) $(OBJS_DIR)/*.o@rm -rf $(BIN_DIR)五、实验数据(现象)处理分析实验现象如下:(一)GCC编译(二)Makefile编程。

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的文件来完成对应用程序的自动维护和编译工作。

LINU系统及其编程 实验报告

LINU系统及其编程 实验报告

LINU系统及其编程实验报告实验报告:Linux系统及其编程一、实验目的本次实验旨在熟悉和掌握Linux系统的基本操作,了解Linux系统下编程环境的基本设置,以及掌握基本的编程和调试技能。

二、实验内容1、Linux系统安装及基本操作2、Linux编程环境设置3、编写并运行C程序4、使用调试工具进行程序调试三、实验步骤及结果1、Linux系统安装及基本操作(1) 实验步骤1、从官方网站下载Linux系统镜像,并使用U盘进行安装。

2、安装过程中,选择合适的分区方案和软件包。

3、成功安装系统后,进行基本设置,包括网络连接、用户账号创建等。

(2) 实验结果成功安装Linux系统,并能够进行日常的基本操作,如文件管理、软件安装等。

2、Linux编程环境设置(1) 实验步骤1、安装编译器(如GCC)、编辑器(如Vim或Nano)和调试工具(如GDB)。

2、配置环境变量,确保编译器和调试工具能够在系统任何位置运行。

(2) 实验结果成功安装并配置了编程环境,能够在Linux系统下编译和运行C程序。

3、编写并运行C程序(1) 实验步骤1、使用编辑器创建一个简单的C程序,实现两数相加。

2、使用编译器(如GCC)编译程序,并生成可执行文件。

3、运行可执行文件,查看结果。

(2) 实验结果成功编写并运行了C程序,得到了预期的结果。

4、使用调试工具进行程序调试(1) 实验步骤1、在代码中添加一些错误,观察程序是否能正确运行。

2、使用调试工具(如GDB)对程序进行调试,找到并修复错误。

3、重新编译并运行程序,查看修复错误后的结果。

(2) 实验结果成功使用调试工具找到了程序中的错误,并修复了问题,得到了正确的结果。

四、实验总结通过本次实验,我对Linux系统的基本操作和编程环境有了更深入的了解。

掌握了Linux系统下的文件管理、软件安装和配置等操作,学会了编写和调试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。

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应用程序开发实验小结

linux应用程序开发实验小结

linux应用程序开发实验小结
在本次 Linux 应用程序开发实验中,我收获了很多宝贵的经验。

首先,我对 Linux 操作系统的基本概念和命令有了更深入的理解。

通过实际操作,我学会了如何在命令行界面下进行文件管理、进程管理以及用户管理等操作,这些技能对于日常的系统维护和开发工作非常重要。

其次,我学习了如何使用 C 语言在 Linux 环境下进行应用程序开发。

通过编写简单的C 程序,并在 Linux 上进行编译、运行和调试,我熟悉了 Linux 下的开发工具链和开发流程。

同时,我也了解了 Linux 系统编程中的一些关键概念,如文件 I/O、进程控制和网络编程等。

另外,我还体验到了 Linux 社区的强大和开放性。

在实验过程中,我通过查阅文档、在线论坛和向同学请教等方式解决了遇到的问题。

这种开放的交流和分享精神让我深感敬佩,也让我意识到在学习和开发过程中与他人合作的重要性。

总的来说,这次 Linux 应用程序开发实验让我对 Linux 操作系统和应用程序开发有了更深入的了解,同时也提高了我的实际操作能力和解决问题的能力。

我相信这些经验和技能将对我今后的学习和工作产生积极的影响。

linux下C语言使用编译与调试试验

linux下C语言使用编译与调试试验
用run命名运行greet,欲行结果如下:
运行结果和外面的运行结果一样,同样没有反序输出,用list命令列出源代码:
在24行设置一个断点:
再次输入run命令,结果如下图:
能通过设置一个观察string2[size-1]变量值得观察点来查看错误是怎么产生的,输入如下指令:
用next命令一步步执行for循环,如下图:
#include "function2.h"
int main(int argc, char **argv)
{
function1_print("hello");
function2_print("world");
return 0;
}
//function1.h
void function1_print(char *str);
运行:./gdbtest1
开始调试:gdbgdbtest1
#include <stdio.h>
int add_range(int low, int high)
{
static int i,sum;
for(i=low; i<=high; i++)
sum = sum +i;
return sum;
}
int main(void)
{
unsigned long long res=1;
if (y==0)
res = 1;
else if (y==1)
res = x;
else
res = x * mypow(x, y-1);
return res;
}
powtest.c:调用mypow()函数
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1实验目的:
掌握Linux环境下的基本操作命令。

编写简单的C程序,编译运行和调试。

2实验内容:
掌握Linux的基本操作命令
使用vi编辑器
使用gcc编译工具
3实验步骤:
3.1 vi编辑器的使用
vi编辑器是一个小巧但功能强大的程序。

vi编辑器有三种不同的模式:
插入模式——这个模式是通过在命令模式按下“i”键进入的。

命令模式——这是用户输入单键命令的模式。

在其他模式中按下ESC键就可以进入命令模式。

常见的执行删除操作的命令有:
dd 删除整个行
#dd 按照输入的数字(#),从当前行删除几行
D 删除光标位置后面全部内容
Dw 删除光标所在位置的单词
F1 获取帮助
冒号模式——从命令模式输入一个冒号(:)就可以进入这个模式。

常见的冒号模式命令有:
:wq 保存且退出编辑器
:w 保存但不退出
:q 退出且不保存
:q! 强行退出vi,不保存。

:help 获取帮助
1)在系统提示符($)下输入命令vi和想要编辑(建立)的文件名
vi test.c <enter>
[m112013@tan ~]$ vi test.c
2)按键I进入插入模式。

屏幕上看不到字符i,屏幕下方出现--INSERT--字样。

3)输入你的程序:
#include <stdio.h>
main()
{
printf("hello world!\n");
printf("Welcome!\n");
}
4)按〈Esc〉键,从插入模式进入冒号模式。

5)输入wq,保存退出
3.2 在客户端编辑源程序后上传到FTP服务器在客户端用文本编辑器编辑C程序,然后用将程序上传至工作目录。

1)打开ftp,输入网址,用户,密码。

C:\Users\asu>ftp 202.116.42.139
连接到202.116.42.139。

220 (vsFTPd 2.0.5)
用户(202.116.42.139:(none)): m112013
331 Please specify the password.
密码:
230 Login successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
lab1
lab2
subdir
test.c
226 Directory send OK.
2)进入准备发送的文件的本地目录。

ftp> lcd E:
3)把ex.c上传。

: ftp> put ex.c
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 File receive OK.
ftp: 发送87 字节,用时0.00秒87000.00千字节/秒。

3.3 gcc编译
gcc 命令的基本用法如下: gcc [options] [filenames]
<1> 输入gcc test.c
[m112013@tan ~]$ gcc test.c
<2> 输入ls查看,目录下应该有个a.out文件
[m112013@tan ~]$ ls
a.out ex.c lab1 lab2 subdir test.c
<3> 输入./a.out,运行程序,屏幕上显示什么?
[m112013@tan ~]$ ./a.out
hello world!
Welcome!
<4> 如果想给程序重命名,使用编译选项-o重新编译。

输入gcc –o test test.c [m112013@tan ~]$ gcc -o test test.c
<5> 输入ls查看,目录下应该有个test文件
[m112013@tan ~]$ ls
a.out ex.c lab1 lab2 subdir test test.c
<6> 输入 ./test,运行程序,这个程序执行时又显示什么结果?
[m112013@tan ~]$ ./test
hello world!
Welcome!
3.4 用shell语言编制一个批处理程序,其功能如下:
<1> 屏幕提示用户年、月;
<2> 接收用户的输入值;
<3> 输出该年该月的日历。

执行该脚本,完成上述功能。

echo "Please input year: "
read YEAR
echo "Please input month: " read MONTH
cal $MONTH $YEAR
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"a.sh" [New] 6L, 110C written
编译sh文件:
[m112013@tan ~]$ ./*.sh Please input year:
2013
Please input month:
3
March 2013
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
3.5 创建一个shell文件,完成以下功能:
<1> 将键盘输入的内容保存到文件./myfile.txt文件中;
a)新建一个文本文件“myfile.txt”
[m112013@tan ~]$ vi myfile.txt
b)在vi编辑器下输入如下内容:
Welcome to the world of Linux!
It's a funny language and needs more patience.
I hope I can learn it well!
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"myfile.txt" [New] 3L, 106C written
<2> 显示该文件内容;
[m112013@tan ~]$ cat myfile.txt
Welcome to the world of Linux!
It's a funny language and needs more patience.
I hope I can learn it well!
<3> 显示当前目录下的所有文件和目录名称。

[m112013@tan ~]$ ls
a.out a.sh ex.c lab1 lab2 myfile.txt subdir test test.c
4实验总结
1)本次实验是有史以来花了最多时间的一次,首先在做第一步3.1用vi编辑一个C程序的时候就开始遇到问题。

由于自己的粗心,直接把实验题目的程序复制粘贴,其中有几个错误也不知道,譬如prinft的那两行多了两个分号,还有Welcome英文的拼写错误。

这样导致在输入gcc test.c的时候总是提示出错。

2)第二,3.1的C程序在编辑完毕按Esc键后只按“wq”,发现没有保存,应该输入“:wq”,才能保存成功,输入gcc test.c的时候才能看见a.out文件。

3)3.4编制一个批处理文件,通过上网查阅资料才知道批处理文件还可以用.sh的文件。

编译的时候应输入“. /*.sh”。

4)通过这几个实验,基本掌握了ls,cd,vi等几个常用命令,对linux有了进一步的兴趣。

相关文档
最新文档