Products
96SEO 2025-06-30 08:12 2
在柔软件开发过程中,程序困难免会遇到各种错误,如输入错误、材料不够、内存泄漏等。为了搞优良程序的健壮性和稳稳当当性,我们需要对异常进行处理。
C语言本身不支持try catch语法,但在Linux编程中,能用glibc库的sigsetjmp和siglongjmp函数模拟try catch。
函数 | 功能 |
---|---|
sigsetjmp | 设置一个跳转点, 保存当前周围,用于longjmp调用 |
siglongjmp | 从sigsetjmp设置的跳转点恢复周围,并跳转到该点接着来施行 |
errno在C程序中是一个全局变量,由C运行时库函数设置,用户程序需要在程序发生异常时检测之。
#include
#include
int main {
FILE *fp = fopen;
if {
if {
printf;
} else {
printf;
}
} else {
fclose;
}
return 0;
}
#include
#include
int main {
int *arr = malloc);
if {
printf;
return 1;
}
// 用arr...
free;
return 0;
}
在Ubuntu中用C语言进行异常处理,能通过sigsetjmp和siglongjmp函数模拟try catch,或者用errno全局变量。在实际编程过程中,我们需要根据具体情况选择合适的方法进行异常处理。
Demand feedback