Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册
  • 博客访问: 2363343
  • 博文数量: 407
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4237
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(407)

文章存档

2017年(5)

2016年(11)

2015年(34)

2014年(22)

2013年(30)

2012年(19)

2011年(7)

2010年(12)

2009年(16)

2008年(251)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
linux下c/c++程序重启自己 2016-02-20 17:05:33

分类: C/C++

在程序自动升级的时候需要自己重新启动自己
示例代码:

点击(此处)折叠或打开

  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>

  4. int main(int argc, char **argv)
  5. {
  6.     char buf[32] = {};
  7.     char *exec_argv[] = { argv[0], buf, 0 };
  8.     int count = argc > 1 ? atoi(argv[1]) : 0;

  9.     printf("Running: %s %d\n", argv[0], count);
  10.     snprintf(buf, sizeof(buf), "%d", count+1);
  11.     sleep(5);

  12.     execv("/proc/self/exe", exec_argv);

  13.     /* NOT REACHED */
  14.     return 0;
  15. }
zengming@linux-eshv:~/test> g++ main.cpp
zengming@linux-eshv:~/test> ./a.out 1
Running: ./a.out 1
Running: ./a.out 2
Running: ./a.out 3
^C
程序员群:31843264
阅读(1721) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册