开放系统调用 - Linux

时间:2013-03-26 09:05:06

标签: c linux linux-kernel

尝试使用开放系统调用打开tty端口。如果开放系统调用返回-1,我知道其他应用程序是否正在使用此端口吗?

找不到相同的错误代码。

2 个答案:

答案 0 :(得分:0)

如果文件已经打开,对open()的调用不会给您错误。

然后,您可以尝试分析linux lsof命令的输出:

lsof /dev/ttyS0

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

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

答案 1 :(得分: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;
}

请参阅此link以了解错误代码是什么。