在c++代码中关闭和启动另外一个pid进程号,共享内存数据使用

char * of_program_name= "./AB";

1、 pid = getPidFromName(of_program_name);

if (pid > 0)
            {
                ERROR("AB process still exispid = %d\n", pid);

                if (kill(pid, SIGKILL))  //杀死进程

            {
                    fprintf(stderr, "kill(SIGKILL)error\n");

                    continue;
                }

wait(NULL);
            }
 

2、重启另外一个进程
            if (0 == fork())
            {
                ERROR("start ABagain\n");

                if (execl(of_program_name, of_program_name, NULL))
                {
                    fprintf(stderr, "exec %s error\n", of_program_name);
                }
            }

             usleep(100000);
        }

                

3、//关闭共享内存
    if (shmctl(shmid, IPC_RMID, 0) == -1)
    {
       fprintf(stderr, "shmctl(IPC_RMID) failed\n");
        exit(EXIT_FAILURE);

}

 

4、  //share memory initialzie
    void* shm = NULL;
    struct shared_use_st* shared = NULL;
    int shmid;

    //get share memory
    shmid = shmget((key_t)6666, sizeof(struct shared_use_st), 0666 | IPC_CREAT);

if (shmid == -1)
    {
        fprintf(stderr, "shmget failed\n");
        exit(EXIT_FAILURE);
    }

// map the share memory to local address
    shm = shmat(shmid, (void*)0, 0);

 if (shm == (void*) -1)
    {
        fprintf(stderr, "shmat failed\n");
    

    exit(EXIT_FAILURE);
    }

    shared = (struct shared_use_st*)shm;

 

 

 

 


    

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提速XP操作系统

1、加速网上邻居 在Windows XP中访问网上邻居是相当恼人的,系统会搜索自己的共享目录和可作为网络共享的打印机以及计划任务中和网络相关的计划任务,然后才显示出来,显然这样速度就会比Windows 9x中慢很多。其实这些功能我们并没有使用上&…

学习笔记(47):Python实战编程-pack布局

立即学习:https://edu.csdn.net/course/play/19711/343109?utm_sourceblogtoedu pack布局: 1)最常用的布局,顺序排列布局方法 2)完成了简单的组件位置码放,但如果内部布局处理机制跟不上的话,也可能会达…

ASP.NET Web API 应用教程(一) ——数据流使用

相信已经有很多文章来介绍ASP.Net Web API 技术,本系列文章主要介绍如何使用数据流,HTTPS,以及可扩展的Web API 方面的技术,系列文章主要有三篇内容。 主要内容如下: I 数据流 II 使用HTTPS III 可扩展的Web API 文档…

JAVA类的构造方法

1,构造方法没有返回类型, 定义: []public] 方法名() {} 2,一个构造方法如果想调用同一类中的另一个构造方法,只能调用一个,并且要放在构造方法第一行 3,用this调用,如 1 public person(int i, int j) { 2 this(); //调用另一个构造方法,且放在第一行 3 } 转载于:https://www…

将字符串和数字合并动态写入

sprintf(tmpTime, "/media/AIlog/%02d_%02d_%.txt",100,200);

windows安装64位Pygame方法

因为官方网站http://www.pygame.org/download.shtml并没有提供64位的pygame,所以要找其他网站制作的64位安装文件。 如果你已经在你的64位开发环境中安装了32位的pygame, 那么在导入pygame包的时候, 会有提示: ImportError: DLL l…

学习笔记(48):Python实战编程-grid布局

立即学习:https://edu.csdn.net/course/play/19711/343110?utm_sourceblogtoedu grid布局:根据表结构进行的布局,索引为0行0列开始,最具代表性的即使电脑计算器的数字和符号按键布局 组件.grid(row 行索引号 , column 列索引号…

为什么“三次握手,四次挥手”?

前言: 如果你说你懂IT,你懂计算机网络,那么你会怎么解释“三次握手,四次挥手”? ---------------- 1.TCP报文段首部格式: 2.TCP建立连接图 -------------------------------------------- 符号说明 seq:"sequance…

学习笔记(49):Python实战编程-place布局

立即学习:https://edu.csdn.net/course/play/19711/343111?utm_sourceblogtoedu 1.place布局: 1)最灵活的布局方式,是根据坐标点来进行组件的位置布局的 2)确定坐标点后,组件从坐标点开始展开,即以指定…

cobbler基础安装

epel源安装rpm -ivh epel-release-6-8.noarch.rpmyum -y install cobbler httpd rsync tftp-server xinetd dhcp cobbler-web koan pykickstart* fence-agents* debmirror syslinux$$$$$$$$$$$启动cobbler服务/etc/init.d/cobblerd start$$$$$$$$启动httpd服务/etc/init.d/http…

[ActionScript 3.0] NetConnection建立客户端与服务器的双向连接

一个客户端与服务器之间的接口测试的工具 <?xml version"1.0" encoding"utf-8"?> <!--- - - - - - - - - - - - - - - - - - - - - - - - - * author:Frost.Yen * E-mail:871979853qq.com * create:2016-7-13上午12:10:20 - - - - - - - - - - …

C++ share_prt 简单设计和实现

C 比较烦恼的是内存的管理&#xff0c;new是简单&#xff0c;不够&#xff0c;delete偶尔就会忘记。或者说&#xff0c;出现&#xff0c;多个对象共享多一个内存&#xff0c;一个delete以后&#xff0c;导致其他也不能用的不良情况&#xff0c;所以就跑出了一个智能指针来进行管…

PID控制无人机

1、有效的办法就是&#xff0c;根据距离目标值的远近来调节云台的速度&#xff0c;离得远就转快一些&#xff0c;离得近就慢一些。这样就需要我们实时获取云台当前的实际角度&#xff0c;然后和目标角度做对比&#xff0c;根据差值来动态地调整云台的速度和方向。 2、根据无人…

学习笔记(50):Python实战编程-Frame

立即学习:https://edu.csdn.net/course/play/19711/343112?utm_sourceblogtoedu 1.Frame:是内嵌布局管理器&#xff0c;针对不同功能的组件进行区域划分&#xff0c;在各自的区域内可以使用不同的布局&#xff0c;但是总的frame布局方式还是一致的 2.以计算器为例 步骤&#…

SVN使用MySQL验证用户名密码(HTTP)

安装过程全部采用yum 1yum -y install subversion httpd mod_auth_mysql mod_dav_svn mod_ssl 使用MySQL验证是依赖于mod_auth_mysql 主要配置文件 12345678910111213141516171819202122<Location /svn > DAV svn SVNParentPath /var/www/html/svn AuthType Basic AuthNa…

Cent OS 6.4安装mysql

Cent OS6.4 RPM安装mysql 一、卸载掉原有mysql 因为目前主流Linux系统版本基本上都集成了mysql数据库在里面 如下命令来查看我们的操作系统上是否已经安装了mysql数据库 [rootxiaoluo ~]# rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 有…

学习笔记(51):Python实战编程-ListBox

立即学习:https://edu.csdn.net/course/play/19711/343113?utm_sourceblogtoedu listbox 知识点&#xff1a; 1)创建listbox: self.item_listbox tkinter.Listbox(self.root,selectmode "multiple", font("微软雅黑",12),fg "black",bg &…

C++简单工厂模式

核心思想&#xff1a;用一个工厂类根据不同的输入条件new出不同的派生类指针&#xff0c;然后由多态调用不同派生类中virtual函数&#xff0c;得到不同的结果 所有的判断处理在工厂类中完成&#xff0c;通过CreateFactory函数&#xff0c;根据不同的类型&#xff0c;new出派生类…

Saltstack的pillar组件(6)

pillar也是Saltstack最重要的组件之一&#xff0c;其作用是定义与被控主机相关的任何数据&#xff0c;定义好的数据可以被其他组件使用&#xff0c;如模板、state、API等。在pillar中定义的数据与不同业务特性的minion相关联&#xff0c;这样不同的minion只能看到自己匹配的数据…

redis投票计数

<?php /*** * 缓存利用测试&#xff0c;这里我们获取传过来的投票数据&#xff0c;每次加1&#xff0c;如果增加到了设定值&#xff0c;才将投票* 次数写回mysql&#xff0c;这大大减轻了与mysql链接的开销&#xff0c;redis的使用由此可见一斑* var unknown_type* 来自&am…