파일을 닫은 후 termios 설정

파일을 닫은 후 termios 설정

termios.h파일을 닫았다가 다시 열면 기능 설정이 변경됩니까?

termios파일 포트에 대한 읽기 및 쓰기만 제공하고 추가 기능( , , ioctl, fnctl) 은 제공하지 않는 고급 언어(Racket)에서 직렬 통신을 사용하고 싶습니다 . FFI를 사용하여 이러한 추가 기능을 바인딩하고 사용할 수 있지만 Racket 기능을 사용하여 읽기/쓰기를 수행하려면 지정된 파일을 닫았다가 다시 열어야 합니다. 따라서 질문입니다.

답변1

termios직렬 포트가 닫혀도 대부분의 설정(예: 전송 속도)은 유지됩니다. 그러나 직렬 포트를 닫으면 DTR을 비활성화하는 등 원하지 않는 일부 효과가 발생할 수 있습니다.

그러나 애플리케이션에서 직렬 포트를 열린 상태로 유지하고 종료 시 재설정될 수 있는 설정 변경 사항이 손실되는 것을 방지하는 등 원치 않는 영향을 피할 수 있어야 합니다. 먼저 Racket에서 포트를 연 다음 FFI 기능을 사용하여 필요한 모든 작업을 수행하십시오. 여기에는 ioctl직렬 fcntl포트를 다시 열고 두 번째 참조를 닫은 다음 원래 Racket에서 열었던 참조를 사용하십시오. 또한 직렬 포트를 다시 열지 않고도 Racket에서 직접 파일 설명자를 가져와 FFI에 사용할 수도 있습니다. 저는 Racket이 무엇인지 모르기 때문에 이에 대해 잘 모르겠습니다.

관련 정보