1

尝试使用 open 系统调用打开 tty 端口。如果打开系统调用返回-1,我如何知道该端口是否被另一个应用程序使用?

不要找到相同的错误代码。

4

2 回答 2

0

如果文件已经打开,调用open()不会给你一个错误。

但是,您可以尝试分析linuxlsof命令的输出:

lsof /dev/ttyS0

它将返回有关打开给定文件的进程的信息(在本例中为:/dev/ttyS0)。

(我已经对此进行了几次测试,所以我不确定,但如果文件由进程打开,则lsof似乎返回0 ,如果没有进程打开它,则返回 1。这可能是一个指示,但是我建议你真正分析一下命令本身的输出)

于 2013-03-26T11:21:06.933 回答
0
#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;
}

请参阅此链接以找出错误代码是什么。

于 2013-03-26T11:32:02.077 回答