问题描述
errno 和 EEXIST 是什么意思?
@test test
我无法理解 if 语句的条件。是说“如果 errno 不存在”吗?
解决方法
如果深入研究 errno.h
,您会发现 EEXIST
是另一个文件中定义的 C 宏。在我的 Debian PC 上,它位于 /usr/include/asm-generic/errno-base.h
。
#define EEXIST 17 /* File exists */
运行man errno
查找errno
变量的含义:
DESCRIPTION
The <errno.h> header file defines the integer variable errno,which is
set by system calls and some library functions in the event of an error
to indicate what went wrong.
所以代码块的意思是检查最后一个函数生成的errno
,如果不是“File exists”(文件不存在),则打印错误信息。
运行 man perror
以获取更多信息。说真的,在向 stackoverflow 提出这样的问题之前,您应该从某本书中学习 C。