/*这是一个后台运行的、每隔30s检查一次的、带有日志功能的断网重新连接程序。

要想使用它必须要配置好c语言环境,比如安装有mingw的codeblocks

实现的方式就是每隔一段时间就去ping一下百度,如果ping失败了就启动上网程序,上网程序会自动连接网络。

使用时将该软件加入开机自启软件即可*/

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )#include#include#include#include#include#include#include#ifdef WIN32

#include

#else#include //linux下头文件

#endif

#define FILE_MAX_SIZE (1024*1024)//日志文件最大为1M

using namespacestd;/*获得当前时间字符串

@param buffer [out]: 时间字符串

@return 空*/

void get_local_time(char*buffer)

{

time_t rawtime;struct tm*timeinfo;

time(&rawtime);

timeinfo= localtime(&rawtime);

sprintf(buffer,"%04d-%02d-%02d %02d:%02d:%02d",

(timeinfo->tm_year+1900), timeinfo->tm_mon, timeinfo->tm_mday,

timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);

}/*获得日志文件大小

@param filename [in]: 文件名

@return 文件大小*/

long get_file_size(char*filename)

{long length = 0;

FILE*fp =NULL;

fp= fopen(filename, "rb");if (fp !=NULL)

{

fseek(fp,0, SEEK_END);

length=ftell(fp);

}if (fp !=NULL)

{

fclose(fp);

fp=NULL;

}returnlength;

}/*写入日志文件

@param filename [in]: 日志文件名

@param max_size [in]: 日志文件大小限制

@param buffer [in]: 日志内容

@param buf_size [in]: 日志内容大小

@return 空*/

void write_log_file(char* filename, long max_size, char*buffer, unsigned buf_size)

{if (filename != NULL && buffer !=NULL)

{//文件超过最大限制, 删除

long length =get_file_size(filename);if (length >max_size)

{

unlink(filename);//删除文件

}//写日志

{

FILE*fp;

fp= fopen(filename, "at+");if (fp !=NULL)

{char now[32];

memset(now,0, sizeof(now));

get_local_time(now);

fwrite(now, strlen(now)+1, 1, fp);

fwrite(buffer, buf_size,1, fp);

fclose(fp);

fp=NULL;

}

}

}

}/*后台运行的、每隔25s检查一次的、带有日志功能的断网重新连接程序*/

voidp()

{

HWND hwnd;

hwnd=FindWindow("ConsoleWindowClass",NULL); //处理顶级窗口的类名和窗口名称匹配指定的字符串,不搜索子窗口。

if(hwnd)

{

ShowWindow(hwnd,SW_HIDE);//设置指定窗口的显示状态

}while(1)

{

_sleep(30000);//睡眠30s

clock_t start, end;//计时

start =clock();

system("ping baidu.com");//system执行cmd命令, 可以用cout打印返回结果

end=clock();double duration = ((double)end - start) /CLOCKS_PER_SEC;bool flag = true; //默认有网

if (duration > 10.0)

{

flag= false;

system("start /b C:\\\"Program Files\"\\\"Ruijie Networks\"\\\"Ruijie Supplicant\"\\RuijieSupplicant.exe");//路径用\\,双引号为转义字符,前面要加\

}//写入日志文件

char buffer[32];

memset(buffer,0, sizeof(buffer));if(flag)

sprintf(buffer,"====> %s\n", "有网");elsesprintf(buffer,"====> %s\n", "没有网#######################################################################################################");

write_log_file("log.txt", FILE_MAX_SIZE, buffer, strlen(buffer));

}

}/*计时函数,没有用到*/

voidg()

{

clock_t start, end;

start=clock();

_sleep(1234);

end=clock();double duration = ((double)end - start) /CLOCKS_PER_SEC;

printf("%f second", duration);

}intmain()

{

p();return 0;

}

c语言延时30s的程序,用c语言实现后台运行的、每隔30s检查一次的、带有日志功能的断网重新连接程序...相关推荐

  1. c语言程序窗口后台持续监测,用c语言实现后台运行的、每隔30s检查一次的、带有日志功能的断网重新连接程序...

    /*这是一个后台运行的.每隔30s检查一次的.带有日志功能的断网重新连接程序. 要想使用它必须要配置好c语言环境,比如安装有mingw的codeblocks 实现的方式就是每隔一段时间就去ping一下 ...

  2. Linux 下后台运行程序,查看和关闭后台运行程序(转载)

    1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...

  3. Linux 下后台运行程序,查看和关闭后台运行程序

    1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...

  4. windows下断网启动程序

    startIE.cmd @echo off rem set the charsert: utf-8 CHCP 65001 rem 上面这句代码表示当前这个文件是utf-8编码rem 请求管理员权限 @ ...

  5. linux查看 后台运行的程序看不出来,linux后台运行、关闭和查看程序的方法

    一.关闭终端后,后台依然运行的程序的方法 nohup python main.py & (其中python main.py就是我们要运行的程序) 用这个命令,关闭终端后,在另一个终端查看运行的 ...

  6. linux java后台运行_Java程序在Linux中实现后台运行

    1.运行脚本 脚本如下,这个脚本存在一点问题,Log4j稍微有点问题,但是对运行及日志记录没有影响,日志是通过将所有控制台数据全部写入文件的形式记录的. #!/bin/sh #author:wangc ...

  7. llinux c 语言延时,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define B break void de(int timee) { unsi ...

  8. C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题

    C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题 参考文章: (1)C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题 ( ...

  9. 如何把一个java程序打包成exe文件,运行在没有java虚

    如何把一个java程序打包成exe文件,运行在没有java虚 核心提示:首先,将编译好的程序打包成jar文件,然后做出exe,这样代码就不可见了:但是exe文件在没有安装jre的电脑上不能运行,如果要 ...

最新文章

  1. 清华自研深度学习框架「计图」开源!多项任务性能超过PyTorch
  2. python根据列表形成字典。
  3. 关于webpack一些路径
  4. python数据分类_Python数据挖掘实践—KNN分类
  5. android类似QQ空间,微信朋友圈,微博主页源码
  6. android app resign之后安装提示INSTALL_PARSE_FAILED_NO_CERTIFICATES的解决办法
  7. 父子/父孙传参(Provide/inject方式)
  8. sql顶部菜单项消失_SQL选择顶部
  9. 我的WCF之旅(5):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的重载(Overloading)...
  10. 牛逼!分享一款基于 SpringBoot 的微信点餐系统(附源码)
  11. 常见的总线通信方式及其特点
  12. threejs的环境光+点光源+平行光源+球面光 以及hepler理解+阴影()
  13. Mac (M1) 软件及环境搭建
  14. mysql 保留小数位数
  15. QGtkStyle was unable to detect the current GTK+ theme
  16. 四川南溪仙源长江公路大桥通车 结束千年摆渡过江历史
  17. 【Linux进程】Linux进程
  18. python 测试用例 自动生成目录_如何在python中自动向测试套件添加十几个测试用例...
  19. MAE源代码理解 part1 : 调试理解法
  20. Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取

热门文章

  1. 异常检测 | Street Scene
  2. Codeforces Round #620 (Div. 2) D 贪心 revers 的妙用 编程思维的降维打击
  3. Vmware WorkStation(中文名“威睿工作站”) 网卡图解
  4. 安卓入门,简单画图板的实现
  5. javascript汉字转换成拼音(部分)
  6. 华为p40pro换鸿蒙,华为p40Pro、p40怎么升级鸿蒙系统
  7. bootstrap4 横向表格
  8. python爬取沪深所有股票数据并生成Excel文件
  9. 3D格式转换工具HOOPS助力甲骨文公司成功升级3D浏览器AutoVue
  10. xamarin android 发生一个或多个错误