gpt4 book ai didi

linux - 使用 ctrl c 完成程序时调用函数

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

我在Linux环境下工作,我有一个C++程序,我想要的是当我用ctrl+c取消程序时我希望程序执行一个函数,关闭一些文件并打印一些sutff,有什么办法吗?谢谢你。

最佳答案

signal() 在某些操作系统上可能很危险,在 Linux 上已弃用,取而代之的是 sigaction()"signal versus sigaction"

这是我最近遇到的一个例子 ( "Tap the interrupt signal" ) 并在我玩弄它时进行了修改。

#include<stdio.h>
#include<unistd.h>
#include<signal.h>
#include<string.h>

struct sigaction old_action;

void sigint_handler(int sig_no)
{
printf("CTRL-C pressed\n");
sigaction(SIGINT, &old_action, NULL);
kill(0, SIGINT);
}

int main()
{

struct sigaction action;
memset(&action, 0, sizeof(action));
action.sa_handler = &sigint_handler;
sigaction(SIGINT, &action, &old_action);

pause();

return 0;
}

关于linux - 使用 ctrl c 完成程序时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/368927/

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