1.4.5 错误信息 – Linux就是这个范儿

	$ %boast
	bash: fg: %boast: No such job.

当命令执行成功的时候终端屏幕上不显示任何信息,但是当发生错误的时候它经常会以一定的形式汇报错误。上面我开了一个关于Linux错误信息提示的玩笑。boast是吹牛的意思。我在终端上敲入“%boast”后,终端返回错误提示“No such job”,意思是没有这样的工作。不同的命令返回的错误信息格式有所不同,但是经常有如下格式:

命令名: 执行内容: 错误信息

例如:

	$ rm jie

给出的错误返回是:

	rm: cannot remove 'jie': No such file or directory.

那究竟发生了什么情况?当rm命令要删除jie这个文件,jie这个文件不存在,产生了代号为2的错误。这个错误代号的意思就是找不到相应的文件或目录。错误代码就被自动翻译成No such file or directory。由于错误代码有限(大约有一百多种),有可能许多不同问题对应于同一个错误代码,所以理解要执行的命令和错误信息的关系很重要。得到错误信息,让我欢喜让我忧,喜的是知道发生什么样的错误,忧的是对错误信息有可能百思不得其解,不知道如何去解决,这时候就得凭经验了。

errno.h包含一个完整的基本错误代码列表。除此之外,其他一些头文件(.h)也定义了自己的一些错误代码。代码1列出了系统定义的所有错误代码及错误描述。

代码1:

#include <string.h>
#include <errno.h>
#include <stdio.h>
int main(intargc, char ** argv) {
	int i = 0;
	for(i = 0; i< 256; i++)
		printf ("errno.%02d is: %s\n", i, strerror(i));
	return 0;
}

编译此程序用命令:

	gcc -Wall strerror.c

执行程序:

	./a.out

这个程序的输出有点长,所以就不去浪费纸张了,你自己在电脑上看吧。

Linux就是这个范儿 – 本书目录 

Comments