在我的代码中,open()
失败,返回码为 -1,但不知何故 errno
未设置。
int fd;
int errno=0;
fd = open("/dev/tty0", O_RDWR | O_SYNC);
printf("errno is %d and fd is %d",errno,fd);
输出是
errno is 0 and fd is -1
为什么没有设置 errno?我如何确定 open()
失败的原因?
最佳答案
int errno=0;
问题是您重新声明了 errno
,从而隐藏了全局符号(它甚至不需要是普通变量)。结果是open
设置的和您打印的是不同的东西。相反,您应该包含标准的 errno.h
。
关于c - 为什么 open() 失败并且未设置 errno?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396589/