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

点击(此处)折叠或打开

  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main(int argc, char **argv)
  6. {
  7.     char buf[32] = {};
  8.     char *exec_argv[] = { argv[0], buf, 0 };
  9.     int count = argc > 1 ? atoi(argv[1]) : 0;
  10.  
  11.     printf("Running: %s %d\n", argv[0], count);
  12.     snprintf(buf, sizeof(buf), "%d", count+1);
  13.     sleep(5);
  14.  
  15.     execv("/proc/self/exe", exec_argv);
  16.  
  17.     /* NOT REACHED */
  18.     return 0;
  19. }

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

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐