#include <iostream> #include <cstring> #include <string> #include <stdlib.h> // system 命令使用头文件 #include <fstream> // 读写文件 /*------ mkdir 命令 ------*/ #include <sys/stat.h> #include <sys/types.h> #include <cstddef> using namespace std; // 命名空间, cout end1 等依赖 std 命名空间 //int cishu=1200; //int shijian=300; char DirServer[30]="/datadisk/eisc/server/"; char AnfangDir[99]="anfang"; char logname[20]="eisc_anfang_log.txt"; // 不给长度,系统默认会定义长度,会导致错误,因此需要给长度 char MkdirSh[99]="sudo mkdir -p "; char ChmodSh[99]="sudo chmod 777 -R "; //char eiscshuom[50]="this is eisc anfang xitong + - ="; char eiscshuom[50]="#---------- eisc ------------#"; /*---------- 创建所有服务安装文件夹 -----------*/ int log_run() { strcat( MkdirSh, DirServer); strcat( ChmodSh, DirServer); // 注意:前面定义了变量,需要再函数里面进行赋值追加字符串,否则错误 system(MkdirSh); system(ChmodSh); cout << "\n mkdirsh is : " << MkdirSh ; cout << "\n chmodsh is : " << ChmodSh; return 0; // 终止函数,并且反馈该函数的值为0; return 0 正常退出,return 1 异常退出 , return -1 函数失败 } /*---------- 创建安防文件夹 -----------*/ void mkdir_path(char *p_cMkdir) { int isCreate = mkdir(p_cMkdir,S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO); // 创建文件 指定权限 if( !isCreate ) cout << "\n [ok] create AnfangDir:" << p_cMkdir ; else cout << "\n [fall] create AnfangDir failed! error code: " << p_cMkdir ; } /*---------- 写入日志文件 -----------*/ int W_file() { FILE * fp; fp = fopen (logname, "a+"); // w+ 覆盖并写入 ; a+ 末尾追加字符串 fprintf(fp, "%s %d", eiscshuom, 2023); // 格式化输出流到 fp 指针文件 fclose(fp); // 关闭指针 return(0); } /*---------- 读取日志文件 -----------*/ int R_file ( char *lognamea) { FILE *fp; char c; char buffer[9999]; fp=fopen(lognamea,"r+"); if(!fp) { cout << "[fail] 读取文件为空,或者没有读取到文件: "; cout << "\n 即将退出 R_file 整个函数, 退出效果来源: return -1 \n \n \n "; return -1; } else { cout << "\n [ok] fp 指针获取到文件 非 0 非空,值为: " << lognamea; } while(1) { c=fgetc(fp); // fgetc 从指定流fp 获取下一个字符. 由于循环一次读一个字符。一直读取字符到变量 c if( feof(fp) ) // feof 判断文件是否结束:测试给定流的文件结束符标识 。 文件读完,就 break 退出循环 { break; } cout << c; // 读取到一个字符,打印一个字符 } fseek(fp, 5, SEEK_SET); // 查找 文件开头,指针初始化方向开头: 从 文件流 选择第几个字符位置 fread(buffer, strlen(eiscshuom)+5, 1, fp); // 从文件中读取字符串,读取一个元素,长度为 eiscshuom变量的长度 cout << " \n [ok] 变量 c 获取到fp指针流赋值的字符: \n " << "\n 变量 buffer 从 fp 读取元素个数和数量 结果为: " << buffer << "\n \n " ; // strlen(c)+1 表示统计c 变量的长度还要加1 fclose(fp); return status; // 终止函数,并且反回该函数的值为 0 } /*------------ 判断 R_file 函数 -------------*/ int panduan_xuexi(){ int status=0; if( !R_file(logname)) { cout << "if 默认成立条件是 非0 非空, 感叹号 ! 是非运算 条件取反,相当于 结果为 是 0 是空 条件成立"; cout << "\n [ok] 函数 R_file 返回的值为0 " ; } else { cout << "\n [fall] 函数 R_file 返回的值不为0 "; } return 0; } int main() { log_run(); strcat(DirServer, AnfangDir ); strcpy(AnfangDir,DirServer); cout << "\n AnfangDir 的值为:" << AnfangDir; cout << "\n 我是main 函数 AnfangDir 接收到值:" << AnfangDir; mkdir_path(AnfangDir); W_file(); panduan_xuexi(); return 0; } // rm -rf file ; echo "" > file.cpp ; nano file.cpp ; g++ file.cpp -o file ; chmod +x file; ./file // 软件流程 : 创建安装目录 -> 创建 log.txt 文件 -> 写入eisc -> 开始抓包 -> 等待时间结束抓包 ->读取日志文件 -> 判断 ip 是否大于预设值 /* #include <stdio.h> #include <string.h> int main() { FILE *fp; char buffer[20]; fp = fopen("eisc_anfang_log.txt", "r+"); // fseek(fp, 0, SEEK_SET); fread(buffer, 3, 1, fp); printf("%s\n", buffer); fclose(fp); return(0); } // rm -rf cs ; echo "" > cs.c ; nano cs.c ; gcc cs.c -o cs ; ./cs */
Powered by ddoss.cn 12.0
©2015 - 2024 ddoss
渝公网安备50011302222260号 渝ICP备2024035333号 【实验平台安全承诺书】 小绿叶技术社区,优化网络中,点击查看配置信息
您的IP:192.168.122.82,2024-10-10 18:54:43,Processed in 0.0291 second(s).