mark 下次用 /********************************************************************************* *Copyright(C),Your Company *FileName: // 文件名 *Author: //作者 *Version: //版本 *Date: //完成日期 *Description: //用于主要说明此程序文件完成的主要功能 //与其他模块或函数的接口、输出值、取值范围、 //含义及参数间的控制、顺序、独立及依赖关系 *Others: //其他内容说明 *Function List: //主要函数列表,每条记录应包含函数名及功能简要说明 1.………… 2.………… *History: //修改历史记录列表,每条修改记录应包含修改日期、修改者及修改内容简介 1.Date: Author: Modification: 2.………… **********************************************************************************/ 参考: [1]. https://blog.csdn.net/fmxfmx2013/article/details/30999095?ydreferer=aHR0cHM6Ly9jbi5iaW5nLmNvbS8%3D
/* 时间:2023/09/12 作者:马文杰 代码功能:存储文件之前,检查内存使用百分比,内存使用超过80%会自动删除最老旧的文件,以此来保证系统正常运行 函数名称: getLogUsePercentage / findMatchingFile / compareFileNames / delOldLogFile / main 历史: 日期:2023/09/21 作者:mawenjie 修改:函数delOldLogFile中有一处没有释放资源,是在combinedTime 申请资源失败时没有释放,文中已有记录标记。 */ #include <stdlib.h> #include <dirent.h> #include <stdio.h> #include <string.h> /* 函数功能: 获取系统指定路径下内存使用的百分比 */ int getLogUsePercentage() { int iUsePcent = -1; char line[512] = {0}; // 执行df命令并读取输出 FILE* pipe = popen("df /home/delphi/solo", "r"); if (pipe == NULL) { perror("Failed to execute df command"); exit(EXIT_FAILURE); } // 读取df命令的输出 while(fgets(line, sizeof(line), pipe)); printf("[+][%s:%d] line: %s\n",__FUNCTION__,__LINE__,…
这是一条汇编指令:"0DAB:0106 89E8 MOV AX,BP", 那么16进制数字和机器码之间的转化关系是什么?后来发现机器码有不同的长度,不同长度又分别代表什么含义?通过机器码,如何知道一些信息呢,如:操作数和源操作数,参考一些文章来对比分析下 0x01 机器码分析 1.1 分析16/16位寄存器 1. 目的操作数不变,改变源操作数 逻辑地址 机器码 操作符 操作数 机器码 src dest 0DAB:0100 89C0 MOV AX,AX ;89C0 -> 100010001 11 000 000 0DAB:0102 89D8 MOV AX,BX ;89D8 -> 100010001 11 011 000 0DAB:0104 89D0 MOV AX,DX ;89D0 -> 100010001 11 010 000 0DAB:0106 89E8 MOV AX,BP ;89E8 -> 100010001 11 101 000 0DAB:0108 89F0 MOV AX,SI ;89F0 -> 100010001 11 110 000 0DAB:010A 89F8 MOV AX,DI ;89F8 -> 100010001 11 111 000 0DAB:010C 89E0 MOV AX,SP ;89E0 -> 100010001 11 100 000 0DAB:010E 89C8 MOV AX,CX ;89C8 -> 100010001 11 001 000 2. 源操作数不变,改变目的操作数 0DAB:0110 89C3 MOV BX,AX ;89C3 -> 100010001 11 000 011 0DAB:01…