测试sigaction重启动标识

#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>

#include <iostream>

using namespace std;

bool flag = true;

static void sig_func(int signo){

flag = false;
  cout<<"signal function called";
}

int main(){

struct sigaction newact, oldact;
  newact.sa_handler = sig_func;
  sigemptyset(&newact.sa_mask);
  newact.sa_flags = 0;
  newact.sa_flags |= SA_RESTART;

sigaction(SIGINT, &newact, &oldact);

//  signal(SIGINT, sig_func);

int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  int broad = 1;
  setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &broad, sizeof(broad) );

struct sockaddr_in addr;

struct sockaddr_in addr2;
  socklen_t len = sizeof(addr2);

memset(&addr, 0x00, sizeof(addr) );
  addr.sin_family = AF_INET;
  addr.sin_addr.s_addr = INADDR_ANY;
  addr.sin_port = htons(3000);

bind(sock, (struct sockaddr*)&addr, sizeof(addr) );
 
  while( true && flag){

char msgbuf[1024];
    int nbytes = recvfrom(sock, msgbuf, sizeof(msgbuf), 0, (struct sockaddr*)&addr2, &len);

if (nbytes < 0 && !flag){
      cerr<<"interrupted by ctrl c"<<endl;

}

}

return 0;

}

时间: 2024-10-13 10:41:20

测试sigaction重启动标识的相关文章

installshield制作的安装包卸载时提示重启动的原因以及解决办法

原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如下几种:1. 卸载时,程序正处于运行状态2. 卸载时,程序文件夹处于打开状态3. 卸载时,有文件被别的进程调用,或者在进程中,常见情况如dll在进程中 一般来说解决办法是针对第三种情况的,解决办法是卸载时强制杀进程,比如在OnMaintUIBefore或者OnUninstall里写上强制杀进程的代码

前端测试利器--Browser-Sync启动命令

使用browser-sync启动命令 cmd切换到项目的根目录下** 1. browser-sync start --server --files "css/*.css" ---------- **使用两个*检测所有的目录**

Telnet 测试zookeeper是否启动成功

在linux环境下,有些情况下,我们想看下是否成功启动了Zookeeper,可以才用telnet的方式 Steps: login in the linux os input the command: telnet localhost 2181 If you see the info:   Mode: standalone login as: root[email protected]'s password:Last login: Tue Jun 13 22:56:10 2017 from cn-

confluence和jira重启动后confluence启动报错,打不开网页

重启了jira和confluence服务 jira服务正常,网页正常访问,confluence端口是通的,ping IP,ping域名都通,就是打不开网页,报404 cd /home/confluence/logs tail -f catalina.out    等待查看启动日志 新打开一个服务器ssh连接 cd /home/confluence/bin ./stop-confluence.sh   #停止之前的服务, ps -ef 查看进程是否存在,如果还存在kill -9 进程号 #等待查看

Ubuntu上snmp安装、配置、启动及远程测试完整过程

0.说明 关于一个完整的教程,还是那句话,国内的要么不完整,要么就太旧了,而且思路也不清晰,所以这里写一篇完整的给大家分享一下. 虽然对于Linux主机的监控可以通过执行特定的命令来完成,但是相比之后,通过snmp的方式来获取Linux主机的信息则会更轻松简单些,只不过在使用前的配置可能需要花多一点时间,不过这绝对值得!而且如果需要开发Linux主机的监控软件,那使用snmp肯定是首选,毕竟它可以获得的信息太多太多! 后面的内容就来分享一下在Ubuntu上安装.配置.启动snmp以及进行远程测试

windows安装kafka过程 【本地测试】外赋快速启动小脚本

winsows 上装kafka也蛮简单方便 下载:wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.0/kafka_2.12-2.1.0.tgz 解压到某文件下  ${kafka-path} 在  ${kafka-path}/bin 下 修改server.properties  中 : log.dirs=D:\\ant_JAR\\kafka_2.12-0.10.2.1\\kafka_log  #${kafka-path}下建立k

转载:oracle 启动过程--oracle深入研究

Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是一组线程)和一块共享内存区域:Database是指存储在磁盘上的一组物理文件.通过Instance与Database协同,Oracle数据库才能形成一个动态的可访问关系型数据库系统.本章将由数据库如何启动与关闭入手,开始和大家一起进入Oracle数据库的国度.1.1 数据库的启动从表象来看,数据库的

常规测试要点收集总结

一.功能测试   1. 安装测试: 1)  安装过程中对于缺省安装目录及任意指定的安装目录,是否都能正确安装: 2)  若是选择安装,查看能否实现其相应的功能: 3)  在所有能中途退出安装的位置退出安装程序后,验证此程序并未安装成功(没有程序组及程序项产生): 4)  软件安装后,对其它已经安装的软件是否有影响: 5)  裸机安装后,各功能点是否可用: 6)  安装前,安装程序是否判断可用磁盘空间大小,如果不能满足安装空间要求,安装程序能否继续: 7)  安装过程中查看 版权声明.版本信息.公

开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试

简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建分为基础环境准备.Dubbo环境搭建.精准测试环境搭建.精准测试与Dubbo环境对接等一整套完整的配置过程,用户可以通过下图中的流程图确认自己所部署过程中进行到的阶段点,从而排查部署中可能遇见的问题. 一 dubbo的工具配置流程 1,使用工具 1, Eclipse Java Photon2, JD