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;
}

 

 

posted @ 2022-05-15 11:38  大龄小凡  阅读(361)  评论(0编辑  收藏  举报