32、深入理解计算机系统笔记,Unix下处理错误的风格

简介: 1、unix风格的错误机制下,当函数,如wait执行出错后,it returns -1 and sets the global variable errno to an error code that indicate the cause of the error.如果成功,则返回有用的结果。

1、unix风格的错误机制下,当函数,如wait执行出错后,it returns -1

and sets the global variable errno to an error code that indicate the cause of the error.如果成功,则返回有用的结果。

if ((pid = wait(NULL)) < 0) {

fprintf(stderr, "wait error: %s\n", strerror(errno));

exit(0);

}

The strerror function returns a text description for a particular value of errno

2、Posix-style

    执行错误时,通过返回的错误码来进行判断。成功则返回0

if ((retcode = pthread_create(&tid, NULL, thread, NULL)) != 0) {

fprintf(stderr, "pthread_create error: %s\n", strerror(retcode));

exit(0);

}

3、DNS-style

These functions return a NULL pointer on failure and set the global h errno variable.

if ((p = gethostbyname(name)) == NULL) {

fprintf(stderr, "gethostbyname error: %s\n:", hstrerror(h_errno));

exit(0);

}

4、处理错误的封装函数

void unix_error(char *msg) /* unix-style error */

{

fprintf(stderr, "%s: %s\n", msg, strerror(errno));

exit(0);

}

void posix_error(int code, char *msg) /* posix-style error */

{

fprintf(stderr, "%s: %s\n", msg, strerror(code));

exit(0);

}

void dns_error(char *msg) /* dns-style error */

{

fprintf(stderr, "%s: %s\n", msg, hstrerror(h_errno));

exit(0);

}

目录
相关文章
|
8月前
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
93 0
|
5月前
|
开发框架 Unix Linux
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
63 0
|
8月前
|
Oracle 关系型数据库 Unix
SAP系统拷贝 UNIX + Oracle
SAP系统拷贝 UNIX + Oracle
66 1
|
8月前
|
Unix Linux Shell
在Unix/Linux系统中,文件和目录的权限管理
在Unix/Linux系统中,文件和目录的权限管理
107 3
|
Unix Linux Android开发
1.4 类UNIX系统是什么鬼?
上节《UNIX和linux的区别》中讲到了 UNIX 系统的历史,UNIX 是操作系统的开山鼻祖,是操作系统的发源地,后来的 Windows 和 Linux 都参考了 UNIX。
906 0
1.4 类UNIX系统是什么鬼?
|
数据安全/隐私保护 Shell Unix
|
Unix Windows 数据安全/隐私保护