Linux程序开发和C程序编译实验报告
- 格式:doc
- 大小:112.00 KB
- 文档页数:8
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操作系统实验项目名称: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操作系统是一种基于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内核,并撰写实验报告以记录我们的实验过程和结果。
实验目的:
1. 了解Linux内核的编译过程
2. 熟悉编译工具和技术
3. 掌握编译过程中可能遇到的问题和解决方法
实验步骤:
1. 下载Linux内核源代码
2. 解压源代码并配置编译环境
3. 使用make命令编译内核
4. 安装编译后的内核
5. 测试新内核的稳定性和功能
实验结果:
经过一系列的操作,我们成功地编译了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操作系统的基本命令和编程环境。
具体而言,我们需要使用C语言编写一个简单的程序,实现文件的读取、写入和修改等功能,并在Linux环境下进行测试和验证。
三、实验过程1. 环境准备在开始实验之前,我们首先需要确保已经安装了Linux操作系统,并具备基本的命令行操作能力。
此外,我们还需要安装C语言编译器,以便能够编译和运行我们的程序。
2. 编写程序根据实验要求,我们需要编写一个程序,实现文件的读写功能。
在编写程序之前,我们先进行了详细的需求分析和设计,确定了程序的基本架构和功能模块。
3. 调试和测试在编写完程序之后,我们进行了一系列的调试和测试工作,以确保程序的正确性和稳定性。
我们使用了一些常见的测试用例,包括读取已存在的文件、写入新文件以及修改已有文件等情况,并对程序的输出结果进行了验证。
四、实验结果经过多次的调试和测试,我们最终得到了一个功能完善、稳定可靠的程序。
该程序能够准确地读取、写入和修改文件,并能够处理各种异常情况,如文件不存在、权限不足等。
五、实验心得通过参与这次实验,我收获颇多。
首先,我对Linux操作系统的理解更加深入了。
在实验过程中,我学会了使用Linux的命令行工具,熟悉了Linux的文件系统和权限管理机制。
其次,我对C语言的编程能力也得到了提升。
在编写程序的过程中,我学会了使用C语言的文件操作函数和错误处理机制,提高了自己的编程技巧。
此外,我还意识到编程实践的重要性。
通过亲自动手编写程序,我不仅仅是理论上了解了Linux的一些特性,更重要的是深入了解了其背后的设计原理和实现细节。
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操作系统的开发环境。
我选择了Ubuntu作为我的开发平台,并安装了gcc编译器和其他必要的工具。
在这个过程中,我学会了如何在Linux系统中安装软件包,配置环境变量以及使用命令行工具进行开发。
实验二:基本程序设计在这一部分,我们需要编写一些简单的程序来熟悉Linux系统的编程环境。
我选择了C语言作为主要的开发语言,因为在Linux系统中C语言是最常用的编程语言之一。
通过编写一些简单的程序,我学会了如何在Linux系统中进行编译、链接和调试。
实验三:文件操作在Linux系统中,文件操作是一个非常重要的部分。
在这个实验中,我们需要编写一些程序来进行文件的读写操作。
我学会了如何使用系统调用来打开、读取和写入文件,以及如何处理文件操作中可能出现的错误。
实验四:进程管理Linux系统是一个多进程的操作系统,因此进程管理是一个非常重要的主题。
在这个实验中,我学会了如何创建新进程、进行进程间通信以及处理进程的状态变化。
通过编写一些简单的多进程程序,我加深了对Linux系统进程管理的理解。
总结通过这次实验,我对Linux系统的程序设计有了更深入的了解。
我学会了如何搭建开发环境、进行基本的程序设计、进行文件操作以及进行进程管理。
这些知识不仅对我未来的学习和工作有着重要的意义,也为我进一步深入学习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等系统调用函数,实现了将源文件的内容复制到目标文件中。
通过实验测试,我们发现该程序能够正确地复制文件,保持了源文件的内容和结构。
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有了进一步的兴趣。