文件关闭并再次打开后,termios.h的函数是否会更改设置?
我想用更高级的语言(Racket)来使用串行通信,它只公开对文件端口的读写,但不公开任何附加功能(termios、ioctl、fnctl)。我可以使用FFI来绑定这些额外的函数并使用它们,但是我需要关闭给定的文件并再次打开它,以便使用Racket功能进行读写--这就是我的问题。
发布于 2015-02-02 02:36:32
大多数termios设置(如波特率)即使在串口关闭时也会保留。但是,关闭串行端口确实会产生一些您可能不想要的效果,例如去断言DTR。
但是,您应该能够在您的应用程序中保持串行端口打开,并避免任何未处理的效果,包括避免对可能在关闭时重新设置的设置进行任何更改。只需先在Racket中打开端口;然后使用FFI功能执行您需要的任何ioctl和fcntl操作,这可能包括第二次打开串行端口并关闭第二个引用;然后使用最初从Racket打开的引用。此外,您甚至可以直接从Racket获取文件描述符,并将其用于FFI,而无需第二次打开串行端口--我不确定这一点,因为我不知道什么是Racket。
https://unix.stackexchange.com/questions/182358
复制相似问题