Serial-Port
關閉文件後的termios設置
termios.h
文件關閉並再次打開後保留的功能是否更改了設置?我想以更高級別的語言(Racket)使用串列通信,它隻公開對文件埠的讀寫,但沒有任何附加功能(
termios
、、、ioctl
)fnctl
。我可以使用 FFI 綁定這些附加功能並使用它們,但是我需要關閉給定文件並再次打開它以使用 Racket 功能讀取/寫入 - 因此我的問題。
即使串列埠關閉,大多數
termios
設置(例如波特率)也會保留。但是,關閉串列埠確實會產生一些您可能不想要的效果,例如取消斷言 DTR。但是,您應該能夠在應用程序中保持串列埠打開並避免任何意外影響,包括避免失去可能在關閉時重置的任何設置更改。只需先在 Racket 中打開埠即可;然後使用 FFI 功能做任何你需要的事情
ioctl
,fcntl
這可能涉及第二次打開串列埠並關閉第二個引用;然後使用您最初從 Racket 打開的參考。此外,您甚至可以直接從 Racket 獲取文件描述符並將其用於 FFI,而無需再次打開串列埠——我不確定這一點,因為我不知道 Racket 是什麼。