LINUX C没有try catch吗
发布网友
发布时间:2022-05-26 10:08
我来回答
共2个回答
热心网友
时间:2023-10-12 11:15
Unix(包括Linux)下的C语言编程中是不会使用try catch的,的确C也没有这个语法。然而当运行时的错误异常被抛出时,系统会产生信号发送给进程,如果进程没有做信号响应函数的话,就会被中断运行并且产生core文件,通过core文件可以查看程序的崩溃原因、当时的调用堆栈、当时的变量值等等信息,当然这是另外一个话题。
因此在Unix下,与try catch起到相似作用的东西就是信号相应函数。相关的使用方法大体包括如下内容:
1、信号安装
signal();
sigaction();
2、发送信号函数
int raise(int sig);
int pause(void);
int kill(pid_t pid,int sig);
unsigned int alarm(unsigned int seconds);
int sigqueue(pid_t pid,int sig,const union sigval val);
int setitimer(int which,const struct itimerval *value,struct itimerval *oldvalue);
void abort(void)
3、信号集及信号集操作
sigfillset(sigset_t *set);
sigemptyset(sigset_t *set);
sigaddset(sigset_t *set,int sig);
sigdelset(sigset_t *set,int sig);
4、阻塞信号相关函数
int sigprocmask(int how,const sigset_t *set,sigset_t *set);
int sigpending(sigset_t *set);
int sigsuspend(const sigset_t *set);
具体使用方法可参考相应文档
热心网友
时间:2023-10-12 11:16
C 语言没有这个语法