gpt4 book ai didi

c - 在 C 中重新启动程序

转载 作者:IT王子 更新时间:2023-10-29 01:01:58 26 4
gpt4 key购买 nike

您好,我有一个用 C 语言编写的程序。我有全局变量、数组、动态变量以及数组等...我向我的程序发送 SIGHUP,然后在处理程序中清理动态内存。我想重新启动我的程序用 HUP 编程。有没有办法在 c 中重新启动程序?我想退出并从 main 返回,以便清理由 main 中的静态数组处理的内存并重新启动 main。

你好。我编辑了信号处理程序并在处理程序中添加了 execv。在处理程序中,我有 2 个函数。首先是 clean_up();清理动态数组,第二个是 execv()。发送 HUP 后,首先运行 clean_up,然后运行 ​​execv。但过了一会儿我有段错误。但是,当我不调用 clean_up func 时,它工作正常吗?清理有问题吗?。但清理工作与其他信号很好,例如终止信号

还有一个关于 execv 的问题?它不是从 main 启动新程序吗?当我调用 execv 时,它不会再次从 main 启动

最佳答案

因为你在 linux 上,我认为这是最干净的方法:

int main(int argc, char **argv) {
/* your program here */

/* if you want to restart call this */
if (execv(argv[0], argv)) {
/* ERROR, handle this yourself */
}

return 0;
}

关于c - 在 C 中重新启动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com