我試圖在我的信號處理程序中使用ececl()
收到SIGSEGV
時重置我的程序。但是,我當前的程序需要命令行參數來啓動,我可以通過execl()
+ 1額外參數"RESTART"
來通知程序它只是重新啓動而不是重新啓動。C:我如何使用與我的運行程序相同的命令行參數來執行()我的程序
但我怎麼能通過exec()我的argv []?
目的: execl("./myprog","./myprog",argv[1],argv[2],...,argv[argc],"RESTART");
OR execl("./myprog","./myprog","RESTART",argv[1],argv[2],...,argv[argc]);
看看'execv'。 –
*「我試圖重置我的程序,當它收到一個'SIGSEGV'」*我希望你這樣做的理由是正確的...... – Ryan
讓應用程序嘗試重新啓動它本身並不是一個好主意。相反,您可以編寫一個包裝應用程序的腳本,並在崩潰時重新啓動它。或者你可以使用systemd在崩潰後重啓。 –