尝试使用打开系统调用打开tty端口。如果打开的系统调用返回-1,我如何知道这个端口是否正在被另一个应用程序使用?
如果文件已经打开,调用open()
不会给你一个错误。
但是,您可以尝试分析linux lsof
命令的输出:
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 = %sn", strerror(errno));
return errno;
}
查看此链接以找出错误代码是什么