Linux c 程序自动启动自己
在程序自动升级的时候需要自己重新启动自己
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc,char *argv[]) { char buf[32] ={}; char *exec_argv[] = {argv[0],buf,0}; int count = argc > 1 ? atoi(argv[1]) : 0; printf("Runing:%s %d\n",argv[0],count); snprintf(buf,sizeof(buf),"%d",count +1); sleep(5); execv("/proc/self/exe",exec_argv); /*"/proc/self/exe" 查找出程序自身的地址*/
return 0;
}