Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4469419
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2016-02-20 17:05:33

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

点击(此处)折叠或打开

  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
阅读(4984) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~