中南大学linux程序设计环境实验四(DOC)

合集下载

Linux_实验指导书4版

Linux_实验指导书4版

嵌入式操作系统实验指导书目录实验一常用命令的使用实验二 vi编辑器实验三 shell编程(一)实验四 shell编程(二)实验五常用开发工具实验六 Linux环境编程(一)实验七 Linux环境编程(二)实验八系统及网络管理实验一常用命令的使用班级:姓名:学号:上机时间:任课教师:实验教师:实验成绩:一、实验目的1.掌握Linux的一般命令格式。

2.掌握有关文件和目录操作的常用命令。

3.掌握有关进程操作的常用命令。

4.熟练使用man命令。

二、实验任务1.正确登录和退出系统。

2.熟悉data,cal,who,echo,clear命令。

3.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。

4.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。

5.利用man显示date,echo等命令的手册页。

三、实验注意事项实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。

要求每个同学登录后系统后,要在主目录(/home/student)下创建一个属于自己的子目录(以自己(拼音)名字或学号)。

以后所有工作都要在自己的目录内进行。

建议以后的实验都在同台计算机上做,这样可以保持连续性。

四、实验内容:1.登录进入系统。

开机,选择 VMware Workstation 进入,再选择 Ubuntu 登陆窗口,输入用户名: student ,输入密码: 111111 ,进入Ubuntu图形桌面环境。

2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。

要启动一个终端,可以选择在窗口左侧点击终端按钮。

在终端提示符下输入:date↲显示: 2015年 10月 15日星期四 08:31:50 CST 。

在终端提示符下输入:who ↲显示: student pst/1 2015-10-15 08:22(:0) 。

Linux程序开发环境 实验指导书 (实验3-4)

Linux程序开发环境 实验指导书 (实验3-4)

Linux程序开发环境实验指导书中南大学软件学院实验3 Linux Shell程序设计1、实验目的(1)掌握Linux shell程序运行方法(2)掌握Linux Shell程序基本语法(3)了解Linux环境变量(4)编写简单Linux shell程序2、实验内容完成简单CD唱片管理系统。

(1)需求假设你收集了大量的CD唱片,现在为了方便管理,需要设计和实现一个管理CD唱片的程序。

程序至少能够把每张CD唱片的资料保存起来,如唱片的名称、音乐类型、艺术家或作曲家的名字等;然后针对某张CD唱片而言,还需要保存一些简单的曲目信息;程序要可以以CD唱片为单位进行搜索,而不是以曲目为单位;为了使程序具备完整性,还需要实现对CD唱片资料的输入、修改和删除等功能。

(2)设计把标题信息和曲目信息分开,用两个文本文件分别来存储。

每张CD唱片保存如下信息:编号、标题、曲目类型(流行、爵士等)、作曲家等。

曲目只保存下面两个信息:编号和曲名。

如下表所示:各项信息用逗号来分隔。

(3)实现程序共包含如下函数:get_return()get_confirm()set_menu_choice() insert_title()insert_track()add_record_tracks() add_records()find_cd()update_cd()count_cds() remove_records() list_tracks()代码范例:3、实验记录(1)实验报告中提交系统的完整脚本;(2)记录实验过程中的心得体会。

实验4 Linux 高级程序设计1、实验目的(1) 了解Linux操作系统下应用程序开发流程(2) 掌握gun工具链的使用(3) 了解Linux高级编程技巧(例如IPC机制、系统调用等)2、实验内容(1) 编写一个简单的C语言程序,编写Makefile文件。

了解编译过程,并用gdb进行调试。

(2) 编写一段程序,适用系统调用fork( )创建两个新的子进程,此程序运行使系统中有三个活动进程存在。

linux程序设计实验报告

linux程序设计实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Linux程序设计实验报告.doc

Linux程序设计实验报告.doc

Linux程序设计实验报告Linux程序设计实验报告姓名学号班级指导教师2008年3月实验一Linux基本命令的使用1、实验内容和步骤步骤1以user_login用户身份并使用telnet登录Linux 服务器login (输入username)password (输入密码)步骤2使用新创建的用户账户和口令登录Linux系统,察看登录后的界面。

Adduser tty1 步骤3使用pwd命令,然后用ls命令,使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。

[rootteacher ] pwd /root ls anaconda-ks.cfg Documents install.log.syslog Pictures Videos chapter15 Downloads kk Public Desktop install.log Music Templates ls -a 显示出包含隐藏文件的所有文件ls -F 显示出当前目录下的文件及其类型ls -l 显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称ls -R 显示出该目录及其子目录下的文件步骤4在当前目录下建立一个名为test的新目录,然后将工作目录切换到test下,尝试将/etc目录下的文件passwd拷贝到该目录下(cp 源文件目的目录)。

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

Mkdir test cp /etc/passwd test ls -l total 4 -rw-r--r--. 1 root root 2755 2010-06-11 1315 passwd 步骤5尝试向当前目录下的passwd文件和/etc/passwd文件分别写入一些新内容,用cat命令浏览文件password的内容,用more命令进行浏览翻页操作,再用less命令浏览文件的内容。

可以cat passwd hello world cat passwd|more hello world cat passwd|lesshello world END 步骤6用ls命令查看test下文件的权限,用mv命令更改文件password的文件名为test.txt,尝试用chown和chgrp更改文件的属主为root、组为root,看看能否成功,不成功,请说明原因。

Linux程序设计实验报告

Linux程序设计实验报告

《Linux程序设计》实验指导书实验类别:课内实验实验课程名称:Linux程序设计实验室名称:软件工程专业实验室实验课程编号: N03140112总学时:32 学分: 2适用专业:软件工程先修课程:Linux操作系统、C程序设计实验在教学培养计划中地位、作用:通过讲授Linux的操作使用、系统结构和Linux环境下的程序设计,使学生对Linux 操作系统获得一个全面的认识和掌握。

一方面,学生通过学习系统程序设计,能够复习操作系统中的基本概念,对文件管理、进程控制有更深入的理解;另一方面,学生学会在Linux 环境下工作,进一步熟悉C语言程序设计和数据结构的知识,编写进行系统维护的脚本文件和实用化的大型应用程序,如网络应用程序。

同时,本课程为学生进一步学习其它后续课程(如高级操作系统、Linux内核源代码分析、嵌入式系统等)打下基础。

《Linux程序设计》实验大纲Linux Program Design课程类别:学科专业教育课程课程名称:Linux程序设计开课单位:软件学院课程编号:N03140112总学时:32 学分:2适用专业:软件工程先修课程:程序设计基础一、实验教学目标熟练掌握shell编程、熟练使用linux系统、掌握进程控制和进程间通信,学会编写网络程序,学会在linux环境中编写web程序。

养成一种良好的程序设计风格。

二、实验环境Linux三、实验教材及参考书:[1] 实验指导书(自编讲义)[2]《Linux环境C程序设计》徐诚高莹婷等清华大学出版社2010.1[3]《linux入门到精通》刘忆智清华大学出版社2010.1四、实验成绩评定方式根据学生在实验过程中的认真程度、上机结果验收情况以及实验报告撰写质量,进行综合评定。

五、实验项目及学时分配六、实验内容及要求实验一 Linux基本命令的使用1、实验目的(1)学习和掌握Linux的基本命令(2)增强学生对Linux的学习兴趣2、实验内容(1)linux的登录操作(2)常用基本命令的使用实验二 Shell程序设计1、实验目的(1).Shell程序设计中变量的使用;(2).理解通道的概念并初步掌握它的使用方法;(3).掌握算术操作、字符串操作、逻辑操作、文件操作;(4).掌握if then fi、if then elif fi、case、while、for等控制语句;(5).在shell脚本中使用函数;2、实验内容(1).通过对shell程序的调试,理解变量$#,$0,$1,$2,$3,$@的含义;(2).Shell顺序程序设计;(3).Shell分支程序与多分支程序设计;(4).Shell循环程序设计。

实验作业4(参考答案)

实验作业4(参考答案)

实验作业4vi编辑器的使用(给出操作方式或将效果截图显示)使用vi打开一个新文档,输入以下两段内容:Linux is an operating system that was initially created as a hobby by a young student, Linus Torvalds, at the University of Helsinki in Finland. Linus had an interest in Minix, a small UNIX system, and decided to develop a system that exceeded the Minix standards.The kernel, at the heart of all Linux systems, is developed and released under the GNU General Public License and its source code is freely available to everyone. It is this kernel that forms the base around which a Linux operating system is developed.(1)发出命令显示行号。

底端命令方式下:set nu(2)保存到文件AboutLinux,并不退出。

底端命令方式下:w AboutLinux(3)删除一句“It is this kernel that forms the base around which a Linux operatingsystem is developed.”。

在命令方式下,先把光标移到It处,再按D。

(从当前光标处到行末的所有字符删除)(4)查找单词“Finland”。

命令方式下输入/Finland,回车后会在第一个Finland处停下来。

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程序设计环境实验四

中南大学linux程序设计环境实验四

实验4 Linux 高级程序设计1、实验目的(1) 了解Linux操作系统下应用程序开发流程(2) 掌握gun工具链的使用(3) 了解Linux高级编程技巧(例如IPC机制、系统调用等)2、实验内容(1) 编写一个简单的C语言程序,编写Makefile文件。

了解编译过程,并用gdb进行调试。

(2) 编写一段程序,适用系统调用fork( )创建两个新的子进程,此程序运行使系统中有三个活动进程存在。

控制让一个进程在屏幕上显示一个字符:父进程显示“a”,子进程分别显示字符“b”和字符“c”。

试观察屏幕上的显示结果,并对输出结果进行分析。

在实验报告中写出说明和分析。

(3) 编写一段程序实现父进程创建一个子进程,通过系统调用使子进程和父进程执行不同的任务。

(提示:利用system(), exec系列函数)试思考,怎样实现进程间的同步?(4) 编写一段C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。

3、实验要求(1) 写出源程序,并编译运行(2) 详细记录程序调试及运行结果4、实验思路及过程(1)makefile文件:main.c文件:1.c文件:2.c文件:-o写成-c,函数库导入不正确:(2)出现acb的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p2=fork()创建的子进程运行完毕输出c,最后p1=fork()创建的子进程运行完毕输出b;出现abc的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p1=fork()创建的子进程运行完毕输出b,最后p2=fork()创建的子进程运行完毕输出c;出现bca的结果:p1=fork()会创建一个新的子进程,运行完毕输出b,父进程遇到p2=fork()创建又一个新的子进程,运行完毕输出c,最后父进程运行完毕输出a;出现bac的结果:p1=fork()会创建一个新的子进程,运行完毕输出b,父进程遇到p2=fork()创建又一个新的子进程,父进程运行完毕输出a,最后子进程运行完毕输出c;(3)system是用shell来调用程序=fork+exec+waitpid,而exec是直接让你的程序代替原来的程序运行。

LINUX实验四报告

LINUX实验四报告

一、实验目的
掌握Linux系统中常用命令的作用和命令中各选项的作用。

二、实验环境
安装了fedora17系统的计算机一台
三、实验过程(实验步骤、记录、数据、分析、结果)
1.查看当前系统下用户Shell定义的环境变量的值。

2.定义变量AK的值为200,并将其显示在频幕上。

3.定义变量AM的值为100,并使用test命令语句比较其值是否大于150。

4.创建一个简单的Shell程序,其功能为显示计算机主机名以及显示系统日期和时间。

5.使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n.
6.使用until语句创建一个shell程序,其功能为计算1~10的平方。

7.
按步骤依次写出命令包括运行结果(可截屏)
1.查看当前系统下用户Shell定义的环境变量的值。

2.定义变量AK的值为200,并将其显示在频幕上。

3.定义变量AM的值为100,并使用test命令语句比较其值是否大于150。

4.创建一个简单的Shell程序,其功能为显示计算机主机名以及显示系统日期和时间。

5.使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n.
6.使用until语句创建一个shell程序,其功能为计算1~10的平方。

四、实验总结
(掌握了什么知识,实验中遇到的问题及解决方法)
在实验中,我掌握了创建shell程序的语法:#!/bin/bash和chmod u+x 文件名
也了解了shell定义的环境变量,并且掌握了test语句的用法,数字的比较,循环控制中的for语句、until语句的用法。

实验4 实验名Linux常见命令。

linux实验报告4答案.doc

linux实验报告4答案.doc

湖北工业大学作业与实验报告课程名称:[inux 操作系统实验内容: 实验4: linux 的Shell程序设计学院:工程学院专业班级:班指导教师:李振立姓名:学号:成绩:一、实验目的学习Linux的Shell程序设计的方法,了解和熟悉创建并使用脚本的步骤,熟悉bash的控制结构。

学会简单的shell编程。

学习配置网络的方法,掌握NFS网络文件系统、Web服务、Ftp服务、Samba服务的配置方法。

二、实验内容与要求1、掌握linux的简单Shell程序设计。

2、掌握linux的分支Shell程序设计。

3、掌握linux的循环Shell程序设计。

4、掌握linux的自定义函数Shell程序设计。

三、实验步骤1、简单Shell程序设计(1)创建一个简单的列目录和日期的shell脚本操作步骤:A、输入下列命令,创建一个新文件:#cat >new_scriptB、输入下列行:echo "Your files are”Isecho "today is"date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

C、检查文件内容,确保它是正确的:#cat new_scriptD、不能直接运行脚本,输入它的文件名:#./ new_script该脚本不运行。

E、输入下列命令,显示文件的权限:#ls -1 new _script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

F、输入下列命令,使new_script变成可执行文件。

#chmod +x new_scriptG、要查看新的权限,输入:#ls -1现在拥有文件的读、写和执行权限。

H、输入新脚本的名字以执行它:#./new_script一10 月12 12: 37: 00 CST 2009所有输入到文件的命令都执行,并输出到屏幕上。

(2)用Shell语言编制一Shell程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。

Linux程序开发

Linux程序开发

Linux程序开发环境实验指导书中南大学软件学院实验1 Linux的安装(课后)1、实验目的(1)了解硬盘分区的概念和方法;(2)掌握硬盘的分区规划;(3)掌握Linux操作系统的安装和配置过程。

2、实验设备一台pc机、RedHat Linux 7.2以上版本或Linux Mint 13、VMware Workstation v8.0以上版本。

3、实验原理Linux可以以多种方式安装在PC机上:(1)独立分区安装、(2)DOS 分区安装和(3)虚拟机VMWare下安装。

鉴于VMware下安装对原来系统影响较小且不影响本实验目的,因此采用VMWare下安装方式。

4、实验步骤(1)在Windows XP或Windows 7下安装VMware(2)配置虚拟机(3)启动虚拟机(4)启动Linux安装过程(5)安装过程配置(6)安装后配置(7)第1次启动VMWare下Linux操作系统5、实验记录(1)记录详细安装过程(2)安装过程中出现的问题及其解决措施(3)本课外实验不需要提交实验报告。

实验2 Linux基本操作1、实验目的(1)复习Linux基本命令。

(2)掌握常用Linux命令2、实验内容(1)通过grub修改root用户密码为123456,详细记录步骤。

(2)Linux基本命令:实验下表中的命令,实验报告中列出每个命令的详细作用和常用的参数。

(3)分区、文件系统及挂载:通过虚拟机给Linux添加一块磁盘,设置文件系统格式为ext3,并挂载到/mnt下,最后往这块磁盘中拷贝/etc下得所有文件。

实验报告详细记录整个过程。

(4)文件权限:在你的主目录中创建temp、professional、personal三个子目录,设置使自己拥有读、写、执行3中访问权限,设置其他用户只有读和执行权限。

在~/tmp目录下创建名为d1、d2、d3的三个目录。

在d1目录下用touch命令创建一个名为f1的空文件,在d2目录下创建名为f2的空文件。

Linux程序设计第四版课程设计

Linux程序设计第四版课程设计

Linux程序设计第四版课程设计1. 课程简介本课程旨在通过学习Linux程序设计的基本知识和技能,提升学生的编程能力和解决问题的能力,培养学生对于计算机编程的兴趣和热情。

本课程适合计算机专业的本科生和研究生学习,也适合工作中的程序员进行自我提升和学习。

2. 课程目标通过本课程的学习,学生应该能够掌握以下知识和技能:1.理解Linux系统的架构和原理。

2.掌握C语言在Linux环境下的编程技巧。

3.熟悉Linux下的文件管理和系统调用。

4.理解进程、线程和进程间通信的概念和原理。

5.能够使用Linux下的开发工具进行程序编写和调试。

6.能够开发简单的Linux应用程序和系统工具。

3. 课程内容第一章:Linux系统介绍本章介绍Linux系统的基本结构和命令行操作,包括Linux发行版的选择、Linux的安装和配置、Linux文件系统的管理、Linux常用命令等。

第二章:C语言基础本章主要介绍C语言的基本概念和语法,包括数据类型、运算符、表达式、流程控制语句和函数等。

同时,本章还介绍了C语言在Linux 环境下的编译和调试方法。

第三章:Linux文件操作本章介绍Linux文件系统的基本概念和文件读写函数的使用方法,同时还介绍了Linux下文件权限、文件系统监控和文件操作的实例操作。

第四章:进程和线程本章介绍进程和线程的概念和原理,并介绍了Linux系统下进程和线程的使用方法,包括进程和线程的创建、管理和同步。

第五章:进程间通信本章介绍了进程间通信的主要方法和原理,包括管道、消息队列、信号量和共享内存的使用方法。

第六章:网络编程本章介绍了Linux下网络编程的基本知识和技巧,包括Socket编程、TCP/IP协议、基于UDP协议的Socket编程和多线程服务器的编程方法。

第七章:系统编程本章介绍了Linux系统编程的基本知识和技巧,包括系统调用、模块编程、内核驱动程序和虚拟文件系统的设计和实现。

4. 课程设计为了检验学生在本课程中所学习的知识和技能,本课程设置了以下几个实践性的课程设计:4.1 命令行程序开发使用C语言开发一个简单的命令行程序,要求实现以下功能:1.显示所有文件和目录的名称。

中南大学软件体系结构实验4 结构型设计模式实验

中南大学软件体系结构实验4 结构型设计模式实验
void sort(int[] array);
/** @param array
* @param value
* @return
* @pdOid 60008c08-0cf8-4889-8de7-4a73ed4e14c0 */
int search(int[] array, int value);
}
/***********************************************************************
}
return -1;
}
// public static void main(String []args){
//int [] array ={1,2,3,4,5,6,7,8,9,10};
//BinarySearch bina = new BinarySearch();
//int x =bina.binarySearch(array, 10);
//System.out.print(x);
//
//}
}
/***********************************************************************
* Module: Client.java
* Author: Administrator
* Purpose: Defines the Class Client
public int binarySearch(int[] array, int value) {
// TODO: implement
int low = 0;
int high = array.length-1;
while(low<high){

中南大学Linux系统实验报告材料

中南大学Linux系统实验报告材料

Unix/Linux系统实验报告学院: 信息科学与工程学院指导老师: 胡小龙班级: 信息安全1401班学号: 0906140106 姓名: 孙毅时间: 2016年12月实验一 Linux的安装(课后) (1)1、实验目的 (1)2、实验设备 (1)3、实验原理 (1)4、实验步逐 (1)Linux安装过程: (1)实验2 Linux基本操作 (9)1、实验目的 (9)2、实验内容 (9)3、实验记录 (15)实验3 Linux系统管理 (19)1、实验目的 (19)2、实验内容 (19)3、实验记录 (20)实验4 Linux Shell程序设计 (22)1、实验目的 (22)2、实验内容 (22)3、实验结果 (23)实验5 Linux 高级程序设计 (25)1、实验目的 (25)2、实验内容 (25)实验6 Linux内核 (28)1、实验目的 (28)2、实验内容 (28)心得体会 (31)实验一 Linux的安装(课后)1、实验目的(1)了解硬盘分区的概念和方法;(2)掌握硬盘的分区规划;(3)掌握Linux操作系统的安装和配置过程。

2、实验设备一台pc机、RedHat Linux 7.2以上版本、VMware Workstation v5.53、实验原理Linux可以以多种方式安装在PC机上:(1)独立分区安装;(2)DOS分区安装;(3)虚拟机VMWare下安装。

鉴于VMware下安装对原来系统影响较小且不影响本实验目的,因此采用VMWare下安装方式。

4、实验步逐(1)在Windows XP下安装VMware 5.5(2)配置虚拟机(3)启动虚拟机(4)启动Linux安装过程(5)安装过程配置(6)安装后配置(7)第1次启动VMWare下Linux操作系统Linux安装过程:(1)语言选择:(2)键盘配置:(3)鼠标配置:(4)选择安装还是升级:(5)安装类型:(6)磁盘分区设置:(7)为系统分区:(8)添加分区:(9)引导装载程序配置:(10)网络配置:(11)防火墙配置:(12)语言支持的选择:(13)时区配置:(14)设置根口令(15)选择软件包组:(16)准备安装:应该看到一个安装Red Hat Linux 做准备的屏幕。

linux作业 (4)

linux作业 (4)

Linux下C语言程序的编译与调试
一、实验目的:
•熟悉Linux下C语言编译调试环境
•学会使用gcc编译C程序
•学会使用gdb调试C程序
二、实验内容:
• 1. 在Linux下,编写程序
• 2. 编译运行,生成可执行文件
• 3. 用gdb调试该程序,找到错误并修改
三.实验步骤:
•在Linux环境下输入一个C程序:test.c
–终端里输入vi或vim,启动vi,按a或i进入vi的插入模式,输入代码
–在桌面环境下新建一个文件,打开文件输入代码
•在/home/student下目录里建立一个c子目录,把test.c拷贝到c下。

参考程序:
main( )
{
printf("linux 程序\n"); }
四、实验结果:
1.编辑程序
2.生成文件
3.执行输出
五、心得体会:
由于这次实验是在linux环境下编写C程序,尚不熟练,我写了一个最简单的程序。

按照步骤启动vi后,建立一个新文件。

编写程序后运行,即可输出。

由于程序较简单,编译运行的过程中没有什么问题,便没有进行进一步调试。

这次实验,加深了我对linux环境的了解,也对在不同环境下的C程序的编译运行进行了对比,了解了windows和linux的异同。

linux4

linux4

实验(实习)名称常用命令使用实验(实习)日期指导教师专业年级班次姓名学号得分一、实验目的1.掌握C语言编译的基本用法。

2.掌握gdb调试工具的基本用法。

3.理解make工具的功能,学会编制makefile的方法。

二、实验内容1.利用gcc编译C语言程序,使用不同选项,观察并分析显示结果。

2.用gdb调试一个编译后的C语言程序。

3.编写一个有多文件构成的C语言程序,编写makefile,运行make工具进行维护。

三、主要实验步骤1.改写例6.1,使用下列选项对它进行编译:-I,-D,-E,-c,-o,-l。

2.完成对思考题6.5的调试。

#include<stdio.h>#include<stdlib.h>#include<string.h>int main(int argc,char **argv){char *p;int i;p=malloc(60);strcpy(p,"not 30 bytes");printf("p=<%s>\n",p);if(argc==2){if(strcmp(argv[1],"-b")==0)p[0]='a';else if(strcmp(argv[1],"-f")==0){p[0]='b';}}printf("p=<%s>\n",p);free(p);return 0;}运行结果如下:[LinyunGu@localhost subdir]$ ./badprog -bp=<not 30 bytes>p=<aot 30 bytes>[LinyunGu@localhost subdir]$ ./badprog -fp=<not 30 bytes>p=<bot 30 bytes>3.完成对思考题6.6的调试。

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

实验4 Linux 高级程序设计
1、实验目的
(1) 了解Linux操作系统下应用程序开发流程
(2) 掌握gun工具链的使用
(3) 了解Linux高级编程技巧(例如IPC机制、系统调用等)
2、实验内容
(1) 编写一个简单的C语言程序,编写Makefile文件。

了解编译过程,并用gdb进行调试。

(2) 编写一段程序,适用系统调用fork( )创建两个新的子进程,此程序运行使系统中有三个活动进程存在。

控制让一个进程在屏幕上显示一个字符:父进程显示“a”,子进程分别显示字符“b”和字符“c”。

试观察屏幕上的显示结果,并对输出结果进行分析。

在实验报告中写出说明和分析。

(3) 编写一段程序实现父进程创建一个子进程,通过系统调用使子进程和父进程执行不同的任务。

(提示:利用system(), exec系列函数)
试思考,怎样实现进程间的同步?
(4) 编写一段C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。

3、实验要求
(1) 写出源程序,并编译运行
(2) 详细记录程序调试及运行结果
4、实验思路及过程
(1)
makefile文件:
main.c文件:
1.c文件:
2.c文件:
-o写成-c,函数库导入不正确:
(2)
出现acb的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p2=fork()创建的子进程运行完毕输出c,最后p1=fork()创建的子进程运行完毕输出b;
出现abc的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p1=fork()创建的子进程运行完毕输出b,最后p2=fork()创建的子进程运行完毕输出c;
出现bca的结果:p1=fork()会创建一个新的子进程,运行完毕输出b,父进程遇到p2=fork()创建又一个新的子进程,运行完毕输出c,最后父进程运行完毕输出a;
出现bac的结果:p1=fork()会创建一个新的子进程,运行完毕输出b,父进程遇到p2=fork()创建又一个新的子进程,父进程运行完毕输出a,最后子进程运行完毕输出c;
(3)
system是用shell来调用程序=fork+exec+waitpid,而exec是直接让你的程序代替原来的程序运行。

system 是在单独的进程中执行命令,完了还会回到你的程序中。

而exec函数是直接在你的进程中执行新的程序,新的程序会把你的程序覆盖,除非调用出错,否则你再也回不到exec后面的代码。

这就是为什
么看不到之后的两条打印语句的原因。

用P,V原语操作实现进程间的同步:
1. 为各并发进程设置私用信号量
2. 为私用信号量赋初值
3. 利用P、v原语和私用信号量规定各进程的执行顺序。

例:设进程PA和PB通过缓冲区队列传递数据。

PA为发送进程、PB为接收进程。

PA发送数据时调用发送过程deposit(data),PB接收数据时调用过程remove(data)。

且数据的发送和接收过程满足如下条件: 1)在PA至少送一块数据入一个缓冲区之前,PB不可能从缓冲区中取出数据(假定数据块长等于缓冲区长度), 2)PA往缓冲队列发送数据时,至少有一个缓冲区是空的; 3)由PA发送的数据块在缓冲队列中按先进先出(FIFO)方式排列。

描述发送过程deposit(data)和接收过程remove(data)。

(4)
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int id = fork();
(void) signal(SIGALRM,ding);
if(id < 0)
{
printf("error!\n");
exit(0);
}
if(id == 0)
{
sleep(1);
}
if(id > 0)
{
int statloc;
kill(id,SIGALRM);
wait(&statloc);
printf("statloc:%d\n",statloc);
if(WIFEXITED(statloc))
printf("EXIT
WITH:%d\n",WEXITSTATUS(statloc));
if(WIFSIGNALED(statloc))
printf("KILLED WITH:%d\n",WTERMSIG(statloc));
}
exit(0);
}
5、心得体会
本次实验加深了linux中对C语言编程的理解,了解了一些常用的函数,会编写一些简单的程序,但是不够熟练,需要日后的练习强化。

相关文档
最新文档