0
상황이다 : POSIX 환경에서, 내가 O_NONBLOCK
플래그가 설정 open(...)
를 통해 장치를 개방하는 시리얼 포트 라이브러리를 사용합니다. open
호출 상태에 대한 매뉴얼 페이지 인 open
은이 플래그로 차단하지 않습니다.확인 준비
문제점 : 포트를 연 직후 직렬 포트의 입력 버퍼를 플러시해야합니다. 그럼에도 불구하고 플러시 작업을 수행 할 때 직렬 포트가 준비되지 않았을 수 있습니다 (파일 열기가 아직 완료되지 않았습니다).
질문 : 비 차단 파일 디스크립터를 POSIX에서 준비하기 전에 차단할 수있는 방법이 있습니까?
감사합니다.
당신이 당신이 * "직렬 포트가 준비되지 않을 수도 있습니다"이해 있습니까 * 의미, 즉 귀하의 상황에 실제로 적용됩니까? 어쩌면 간단한 해결책은 O_NONBLOCK 플래그로 ** open() ** 뒤에'fcntl (fd, F_SETFL, 0)'을 실행하여 블로킹 I/O를 사용하는 것입니다. * "파일 열기가 아직 완료되지 않았습니다"* - 그건 무의미한 말입니다. syscall이 리턴 할 때 포트가 열려 있습니다. 이것은 가설 적 문제인가 실제적인 문제인가? 이 문제를 나타내는 코드는 어디에 있습니까? "문제"*? – sawdust