MElody9120 / UESTC-Programming_Techniques_Based_on_the_OperatingSystem

OH ~~~OH~~~~(:D

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UESTC-Progtamming_Techniques_Based_On_The_OperatingSystem

OH!~~~~~ OH ~ (:D

实验部分

Test1

讨论O_APPEND 对 lseek 函数的影响,在设置O_APPEND标志后,lseek 函数的对读写文件是否能像没有设置标志时一样修改


Test2

打印指定目录下所有的子目录与文件名的名称,并且不断递归访问子目录,显示子目录附属的目录与文件的名称


Test3

实现 ls -l 的基本功能,能够完成输出文件类型、9个权限位信息、文件大小、文件名称等功能


实训部分

Test1

对象序列化实验。

序列化对象,即将变量从内存中转换为可存储式或可传输的形式的过程

该实验需要根据不同的实现要求,编写不同的软件版本,具体版本描述与功能需求如下

版本1

将一个类的一个对象序列化到文件

版本2

将一个类的多个对象序列化到文件

版本3

将两个类的多个对象序列化到文件

版本4

按照面向对象的方法,解决多个类的多个对象序列化到文件的问题


Test2

插件框架化实验

能够实现对接口的操作和编程,学习动态链接库的使用和复习IO操作

该实验需要根据不同的实现要求,编写不同的软件版本,具体版本描述与功能需求如下

版本1

使用动态链接库实现打印功能

为了便于操作,使用了Makefile,可使用make或使用编译命令完成编译工作,所使用的命令如下所示

    make 2_1 / g++ 2_1.cpp -ldl -o 2_1
    make HW / g++ Hello_World.cpp -fpic -shared -o LibHW.so 
            / mv libHW.so libTest.so
    ./2_1
    make HC / g++ Hello_China.cpp -fpic -shared -o LibHC.so
            / mv libHC.so libTest.so
    ./2_1

版本2

遍历指定目录,在目录里获取动态链接库实现打印功能

所用到的编译命令如下所示

   g++ 2_2,cpp -ldl -o test
   ./test

版本3

在版本二的基础上,实现一次调用一种功能

为了便于操作,使用了Makefile,可使用make或使用编译命令完成编译工作,所使用的命令如下所示

    make /g++ -o 2_3 2_3.cpp pluginCounter.cpp pluginCounter.h -ldl
    ./2_3 help
    ./2_3 1
    ./2_3 2
    ./2_3 3

版本4

将三个导出函数都放在一个类中,让插件外部获取该类的对象

为了便于操作,使用了Makefile,可使用make或使用编译命令完成编译工作,所使用的命令如下所示

    make / g++ -o 2_4.cpp pluginCounter.cpp pluginController.cpp -ldl -g -o 2_4
    ./2_4 help
    ./2_4 1
    ./2_4 2

About

OH ~~~OH~~~~(:D

License:MIT License


Languages

Language:C++ 95.2%Language:Makefile 4.8%