Linux实验一实验报告
实验内容与要求: 先创建用户家目录下创建文件名为“姓名+学号+04”的子目录,作为本次实验目录,本次实验的所有代码都放到该目录下,要求将所有源代码与数据文件打包成文件”学号-姓名-lab4.tar.gz”, 压缩包与实验报告分别上传到指定目录下。 任务1. 在当前用户目录下创建数据文件student.txt,文件的内部信息存储格式为Sname:S#:Sdept:Sage:Ssex,即“姓名:学号:学院:年龄:性别”,每行一条记录,输入不少于10条学生记录,其中包括学生本人记录。编写程序task41.c,从文件中查找Sdept字段值为“计算机与网络安全学院”的文本行,输出到文件csStudent.txt中,保存时各字段顺序调整为S#:Sname:Sage: Ssex:Sdept。 提示:从终端读入一个文本行到字符串 char buf[MAXSIZE]可调用函数可调用函数: “fgets(buf, MAXSIZE, stdin);”,其中stdin是表示键盘输入设备的文件指针。 任务2. 调用Unix I/O库函数,编写程序task42.c,从键盘读入5个学生的成绩信息,包括学号、姓名、语文、数学、英语,成绩允许有一位小数,存入一个结构体数组,结构体定义为: typedef struct _subject { char sno[20]; //学号 char name[20]; //姓名 float chinese; //语文成绩 float math; //数学成绩 float english; //英语成绩 } subject; 将学生信息,逐条记录写入数据文件data,最后读回第1、3、5条学生成绩记录,显示出来,检查读出结果是否正确。 任务3(选做):在Linux环境下,可以调用库函数gettimeofday测量一个代码段的执行时间,请写一个程序task43.c,测量read、write、fread、fwrite函数调用所需的执行时间,并与prof/gprof工具测的结果进行对比,看是否基本一致。并对四个函数的运行时间进行对比分析。 提示:由于一次函数调用时间太短,测量误差太多,应测量上述函数多次(如10000次)运行的时间,结果才会准确。 附录:使用prof/gprof测量程序运行时间 Linux/Unix环境提供了prof/gprof工具来收集一个程序各函数的执行次数和占用CPU时间等统计信息,使用prof/gprof工具查找程序性能问题,要求编译命令添加-p选项(prof)或-pg选项(gprof),程序执行时就会产生执行跟踪文件mon.out(或gmon.out),再运行prof(或gprof)程序读取跟踪数据,产生运行报告。现在用gprof对以下程序各函数运行性能(占用CPU时间)进行测量。先输入程序源代码: $ cat multiply.c #include <stdio.h> int fast_multiply(x, y) { return x * y; } int slow_multiply(x, y) { int i, j, z; for (i = 0, z = 0; i < x; i++) z = z + y; return z; } int main(int argc, char *argv[]) { int i,j; int x,y; for (i = 0; i < 2000; i ++) { for (j = 0; j < 3000 ; j++) { x = fast_multiply(i, j); y = slow_multiply(i, j); } } printf("x=%d, y=%d\n", x, y); return 0; } 然后编译和执行该程序,检查是否函数性能跟踪数据文件gmon.out: $ gcc -pg -o multiply multiply.c -g $ ./multiply x=5995001, y=5995001 $ ls gmon.out gmon.out 最后,用gprof命令产看各函数执行时间: $ gprof multiply gmon.out Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls us/call us/call name 99.44 14.11 14.11 6000000 2.35 2.35 slow_multiply 0.42 14.17 0.06 main 0.14 14.19 0.02 6000000 0.00 0.00 fast_multiply 在这里,slow_multipy和fast_multiply执行600000次所花运行时间为14.11s和0.02秒。 任务4(选做):在Linux系统环境下,编写程序task44.c,对一篇英文文章文件的英文单词词频进行统计。
例如,若某个输入文件内容为: GNU is an operating system that is free software—that is, it respects users' freedom. The development of GNU made it possible to use a computer without software that would trample your freedom. 则输出应该是: GNU:2 is:3 it:2 …… 提示:可以调用字符串处理函数、二叉树处理函数等库函数 |
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况): 安装Linux操作系统的计算机 |
四、报告内容(给出每个任务的要求、设计思想、源代码,后接编译过程、测试数据与运行结果截图) (1) 先创建一个子目录:mkdir 文件名;再在子目录下创建一个.c文件一个.txt文件:touch student.txt touch task41.c;向文件中写入内容:cat>文件名 ;查看文件内容:cat 文件名 源代码:
|
Linux实验一实验报告相关推荐
- linux内存管理实验malloc,linux内存管理实验报告.doc
linux内存管理实验报告 操作系统实验报告 院别:XXXXXX 班级:XXXXXX 学号:XXXXXX 姓名:稻草人 实验题目:内存管理实验 实验目的 通过本次试验体会操作系统中内存的分配模式: 掌 ...
- linux使用环境实验报告,Linux 及其使用环境实验报告.doc
计算机语言与程序设计上机实验报告 学号: 姓名: 所在系: 班级: 实验名称: 实验1 Linux 及其使用环境 实验日期 实验指导教师 实验机房及机号 ----------------------- ...
- linux系统进程控制实验报告,Linux进程控制实验报告.doc
里奴性进程控制实验报告 实验名称: Linux进程控制 实验要求:一.编写一个Linux系统C程序,由父亲创建2个子进程,再由子进程各自从控制台接收一串字符串,保存在各自的全局字符串变量中,然后正常结 ...
- Linux系统内存管理实验报告,linux内存管理实验报告
<linux内存管理实验报告>由会员分享,可在线阅读,更多相关<linux内存管理实验报告(13页珍藏版)>请在人人文库网上搜索. 1.操作系统实验报告院别:XXXXXX班级: ...
- linux实验实训报告,linux实验实训报告.doc
linux实验实训报告.doc 内蒙古商贸职业学院计算机系 学 生 校 内 实 验 实 训 报 告 2011--2012学年 第二学期 系部:计算机系 课程名称:Linux网络环境管理 专业班级: 内 ...
- 操作系统 实验报告 linux 内核,linux操作系统内核实验报告.doc
linux操作系统内核实验报告.doc linux操作系统内核实验报告 篇一:linux操作系统实验报告 LINUX操作系统实验报告 姓 名 班级学号 指导教师 2011 年 05月 16 日 实验一 ...
- 课程linux实验报告,Linux课程综合训练实验报告
Linux课程综合训练实验报告 1) 实验目的: 熟练掌握Linux操作系统的使用,掌握Linux的各项系统管理功能,掌握Linux下各类网络服务的安装.配置以及使用,并能用shell脚本实现简单的管 ...
- linux服务器搭建实验4报告,LINUX实验四报告
<LINUX实验四报告>由会员分享,可在线阅读,更多相关<LINUX实验四报告(6页珍藏版)>请在人人文库网上搜索. 1.一. 实验目的掌握Linux系统中常用命令的作用和命令 ...
- 课程linux实验报告,Linux操作系统课程实验报告.doc
Linux操作系统课程实验报告.doc Linux操作系统课程实验报告班级姓名学号指导老师田丽华完成时间2014年7月目录一.实验目的1二.实验要求1三.实验内容1[第一题]1[第二题]2[第三题]4 ...
- linux课程实验报告,Linux操作系统课程实验报告
Linux操作系统课程实验报告 Linux操作系统 课程实验报告 班级: 姓名: 学号: 指导老师:田丽华 完成时间:2014年7月 目录 一.实验目的1 二.实验要求1 三.实验内容1 [第一题]1 ...
最新文章
- JDK 源码 Integer解读之一(toString)
- [Eclipse] - Eclipse空格替换tab
- Paxos 实现日志复制同步(Multi-Paxos)
- 中国飞机制造及修理行业未来需求预测及发展态势研究报告2021版
- Struts第一个案例搭建
- 服务器控件开发之基本概念
- 浅谈程序员的职业规划
- python循环中的else_python 循环中else的简单示例
- C#通用类库--短信猫操作类1(原始AT命令)
- Linux配置防火墙
- 2018-2019-2 网络对抗技术 20165322 Exp8 Web基础
- 斐讯K2 刷华硕固件
- 世界第一行销之神杰 亚伯拉罕首次中国大陆行
- 香港地区Airbnb数据可视化分析
- SSL-ZYC 邮票
- 基于DEM的GIS水文分析——河网与集水区域的提取
- 偷学三太子敖丙的功力
- java通过schema校验xml
- MSproject软件在项目管理中实际操作干货
- 【springboot】上传并解析excel表,使用postman测试上传文件,解决excel版本报错问题
热门文章
- 一次千万级别数据的报表查询方案优化
- partial 使用(python)
- MFC Windows 程序设计[161]之启动画面(附源码)
- 关于GPU显存占满(即memory usage 很大),但GPU-util很小,导致模型训练很慢
- matlab中相关系数图并绘图,相关系数图可视化
- 题解- [USACO09OCT]热浪Heat Wave
- python同步枚举(遍历)两个list_拔剑-浆糊的传说_新浪博客
- 安装docker 并构建私有库
- 高级语言参数传递方式_大学C语言难学?来这里教你自学C语言!高分不是梦!干货预警!!!...
- 2022年熔化焊接与热切割考试资料及熔化焊接与热切割免费试题