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代码中,执行结果如下:
实验二
题目要求:
使用多线程实现wc服务器并使用同步互斥机制保证计数正确
上方提交代码 下方提交测试 对比单线程版本的性能,并分析原因