博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017-2018 20155327李百乾 实验三实时系统
阅读量:5131 次
发布时间:2019-06-13

本文共 1287 字,大约阅读时间需要 4 分钟。

2017-2018 20155327李百乾 实验三实时系统

实验一

实验要求:

学习使用Linux命令wc(1)

基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端
客户端传一个文本文件给服务器
服务器返加文本文件中的单词数

上方提交代码

附件提交测试截图,至少要测试附件中的两个文件

实验过程:

1.通过帮助文档得知,WC命令为:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。

-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息
2.题目要求WC1可知编写一个统计字节数的MYWC

#include 
#include
#include
int countChar(char input[]){ int p_input = 0; int count = 0; int word = 0; char ch; while(p_input < strlen(input)){ ch = input[p_input]; if(ch==' '){ if(word){ //读取到空字符,而之前是非空字符,则说明读完了一个单词 count++; word = 0; } }else{ //读取到第一个非空字符,说明是单词的开始 word = 1; } p_input++; } return count;}int main(){ char input[256]; int p_input = 0; int count = 0; FILE *fp = fopen("text.txt","r"); fgets(input,256,fp); fclose(fp); count = countChar(input); printf("Your words count:\n%d\n",count); return 0;}

3.代码放在之前的sever和client代码中,执行结果如下:

1071551-20180109231643301-441854954.png

实验二

题目要求:

使用多线程实现wc服务器并使用同步互斥机制保证计数正确

上方提交代码
下方提交测试
对比单线程版本的性能,并分析原因

实验过程:

1071551-20180109231907504-1843266966.png

转载于:https://www.cnblogs.com/l97----/p/7862441.html

你可能感兴趣的文章
MySQL入门很简单-触发器
查看>>
LVM快照(snapshot)备份
查看>>
绝望的第四周作业
查看>>
一月流水账
查看>>
数论四大定理
查看>>
npm 常用指令
查看>>
20几个正则常用正则表达式
查看>>
TextArea中定位光标位置
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
ZPL语言完成条形码的打印
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
玩转小程序之文件读写
查看>>
HashPump用法
查看>>