相关疑难解决方法(0)

应用程序先前由“root”运行后,QSerialPort 无法打开 tty

我有一个QSerialPort从串行端口读取和写入的应用程序(使用)。当我以root用户身份运行此应用程序,然后以非 root 用户身份再次运行它时,我无法再写入串行端口,并收到以下错误:

QIODevice::write (QSerialPort): device not open
Run Code Online (Sandbox Code Playgroud)

非 root 用户位于该dialout组中,并且相关文件的权限/dev/tty**似乎未更改:

crw-rw---T 1 root dialout ......
Run Code Online (Sandbox Code Playgroud)

最奇怪的是,当我简单地使用 shell 以非 root 用户身份写入文件时,我没有收到错误:

$> echo "foo bar baz" >> /dev/ttyS0
$> echo $?
0
Run Code Online (Sandbox Code Playgroud)

我发现唯一可以解决该问题的方法是重新启动机器。

这里可能发生了什么?

我使用的是 Debian 7。

linux permissions debian qt serial-port

2
推荐指数
1
解决办法
3188
查看次数

标签 统计

debian ×1

linux ×1

permissions ×1

qt ×1

serial-port ×1