/my-test

我的测试c源文件

Primary LanguageCMIT LicenseMIT

my-test

  • 这是我的一个测试文件仓库
  • 全部存放c语言测试文件
  • 大都只适用于Linux系统

我英文渣,文件名都是乱取的 :|

文件功能简表

文件名 测试的功能
RSA.c RSA飞对称加密算法测试
Type_conversion.c Linux下调用ffmpeg来对媒体文件进行格式转换(懒得打命令)
ASCII.c 打印ASCII码所对应的字符(因为懒得查)
mem.c 吞噬你的内存
Progress_bar.c 无聊写的进度条测试工具,可能会在后面用到
Reverse_progress_bar.c 类似于一条反方向的进度条
Text_effects.c 测试Linux下printf加上\033的文字显示效果测试
script-helper.c 一条接着以掉执行指定文件的命令(格式固定)方便重装系统
boom.c 无聊写的,用来爆破数学题,效率贼低,不如直接算
do.c 用于编译并执行c源文件
filelist.c 查看指定目录下的文件和文件夹
gettime.c 获取时间
gtk.c 在Linux下使用gtk做gui的测试
pid.c Linux下使用系统默认库使用多个进程的测试
auto-do.c 可以按照格式批量执行一些命令
build.c 这个文件用于自动编译文件到bin/,且可执行文件在主目录下
clock.c 用于测试Linux的时钟api函数setitimer函数功能
download.c 从指定文件获取url下载文件,或在文件中指定url下载
menupro.c 测试菜单(可选择)功能时的初版程序
mkfile.c 在认识dd和/dev/null前做的创建文件工具,有进度条(好用)
readfile.c 不断地查看指定文件的内容(适用于小文件)
socket.c 使用套接字的简易本地聊天程序,支持中英文输入,无使用ncruses
CPU.c 使用多个线程挤占CPU的性能
bit.c 验证dwm使用位运算标记工作区的原理
chinese.c 辨别输入的内容是中文还是英文
input_to_hex.c 将输入的内容拆分成多个字符并使用十六进制显示,方便查找快捷键对应的输入字符
fork.c 将使用fork创建新的进程执行命令,方便后台执行程序
history_note.c 正在制作中的历史笔记显示程序
number.c 计算质数
input.c 测试固定类型输入的输入框
farme.c 多线程显示处理测试(已改为走迷宫,可和maze.c配合使用)
maze.c 可视化生成迷宫,数据将保存在maze.txt
guess_number.c 猜数字
tetris.c 俄罗斯方块(测试)

注:文件名为斜体的为不再改动的文件,粗体为相对有用的文件

  • 这些测试大都没有什么用... :|

编译命令

请使用命令

git submodule init
git submodule update

下载子模块仓库,否则会有部分程序无法编译

请在项目目录运行以下命令编译所有程序(注:该脚本需要使用zsh):

./build.sh

更多帮助内容请使用./build.sh -h查看

或者使用以下命令编译大部分程序

ls -1|grep ".c$"|sed "/build.c\|gtk.c/d"|sed "s/^\(.*\).c$/gcc \1\.c $(find ./include/lib -name "*.c"|sed ":a;N;s/\n/ /g;b a"|sed 's/\//\\\//g') -lncurses -lm -o bin\/\1/"|sh

再或者编译 build.c 程序,再通过执行编译出来的可执行文件编译大部分程序

部分程序运行效果

注:一下介绍的这些程序我都是自认有用的

  • Type_conversion.c

    • 寻找指定文件夹下的文件(单级)并创建多个进程同时调用ffmpge以快速地转换文件(格式)(不用打命令半天)

    • 命令格式

      Type_conversion -d 文件夹 -t 目标格式后缀
  • Text_effects.c

    • 将终端的颜色、显示效果全部打印出来
  • script-helper.c

    • 一个简易的“解析器”,通过读取指定的shell脚本文件逐条(使用绿色)打印并执行对应的命令,能在遇到错误时退出,并打印错误的命令及其返回值,在执行命令后会在文件中作标记,重新执行程序时就不会调用该命令。

    • 灵感来源于我常重装系统,需要一个能够自动处理脚本错误(退出),重新执行命令时能够跳过已执行的命令的程序。

    • 命令格式:

      Usage: script-helper <options>
          -f  指定脚本文件
          -d  执行脚本
          -r  重置脚本
          -h  打印帮助信息并退出
    • 例子

      • 执行脚本

        $ script-helper -d -f file.sh
      • 重置脚本文件

        $ script-helper -r -f file.sh
      • 执行程序后自动重置脚本文件

        $ script-helper -b -f file.txt
    • 脚本文件“语法”

      • # COMMAND START为命令的开始,也可作为上一命令的结束(但不建议这么做)。如果要快速禁用某条命令,则只需将开始符更改任意字符即可。
      • # COMMAND END 为命令的结束(注意:END后还有两个空格)
      • # COMMAND DID 为已执行命令(注意:DID后还有两个空格)
      • 在命令中#的注释也会被读取,但是它会被shell解释为注释,并且程序会打印整条命令,所以不妨在命令中增加一些注释方便改正文件的错误。
      • 其他的全部遵循脚本的语法,不过命令之间不相通。
  • socket.c

    • 利用Socket实现的“聊天”工具,具有最基础的传输文本功能,基于TCP协议。

    • 具有服务器和客户端两种方式,需要先启动服务器后再启动客户端以建立连接。

    • 支持中英文显示(需在使用命令msgfmt Lang/en_US/socket.po -o Lang/en_US/LC_MESSAGES/socket.mo后在项目根目录下执行可执行文件才可显示英文)