Linux公开发行
我对“开放”有问题。即使没有名为ttyACM3的设备,也不会返回错误。它总是打印“无错误” 有什么问题吗Linux公开发行,linux,Linux,我对“开放”有问题。即使没有名为ttyACM3的设备,也不会返回错误。它总是打印“无错误” 有什么问题吗 fd = open("/dev/ttyACM3", O_RDWR); if(fd) { printf("no error"); } else { printf("error"); } 这一行: if(fd) 对于fd==-1,将计算为true,这就是open返回错误的方式打开返回错误时的-1,而不是0 以后请更仔细地阅读文档:) 另外,如果您想知道,if(fd)对负数的
fd = open("/dev/ttyACM3", O_RDWR);
if(fd)
{
printf("no error");
}
else
{
printf("error");
}
这一行:
if(fd)
对于fd==-1
,将计算为true,这就是open
返回错误的方式<代码>打开返回错误时的-1
,而不是0
以后请更仔细地阅读文档:)
另外,如果您想知道,if(fd)对负数的计算结果为true。您没有在if()中提供正确的条件 如果端口不存在,则open()返回负值。 所以正确的代码应该是
if(fd > 0)
本教程可能很有用。阅读
open
的规范,尤其是返回值部分。