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


    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 <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    
    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:
    %d
    ",count);
    
        return 0;
    }
    

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

    实验二

    题目要求:

    使用多线程实现wc服务器并使用同步互斥机制保证计数正确
    上方提交代码
    下方提交测试
    对比单线程版本的性能,并分析原因

    实验过程:

  • 相关阅读:
    linux内核同步机制相关收集
    【转载】关于终端和控制台的一些解释
    【转】linux内核调试方法总结
    misc汇总
    关于proc的介绍,比较详细
    linux内核启动流程分析
    linux通用中断子系统介绍
    ftrace在mips上的验证
    线程死锁demo
    BeanFactory与FactoryBean
  • 原文地址:https://www.cnblogs.com/l97----/p/7862441.html
Copyright © 2020-2023  润新知