尝试使用 open 系统调用打开 tty 端口。如果打开系统调用返回-1,我如何知道该端口是否被另一个应用程序使用?
不要找到相同的错误代码。
如果文件已经打开,调用open()
不会给你一个错误。
但是,您可以尝试分析linuxlsof
命令的输出:
lsof /dev/ttyS0
它将返回有关打开给定文件的进程的信息(在本例中为:/dev/ttyS0)。
(我已经对此进行了几次测试,所以我不确定,但如果文件由进程打开,则lsof
似乎返回0 ,如果没有进程打开它,则返回 1。这可能是一个指示,但是我会建议你真正分析一下命令本身的输出)
#include <errno.h>
#include <stdio.h>
#include <strcing.h>
int main()
{
if(open("/dev/ttyS0", O_RDWR))
printf("errno = %s\n", strerror(errno));
return errno;
}
请参阅此链接以找出错误代码是什么。