리눅스에서 직렬 포트에 관한 문제를 해결하려고합니다. 포트를 열어서 읽고 닫을 수 있습니다. 그러나 나는 언제나 항구에서 독서/글을 쓰는 유일한 사람이다.리눅스 직렬 포트 잠그기
open() 함수를 호출 한 후에이 작업이 이미 완료되었다고 생각했습니다. 그러나, 내 프로그램의 동일한 포트에서 open()을 여러 번 호출 할 수 있습니다. 또한 같은 포트에서 동시에 읽는 두 개의 스레드를 가질 수 있습니다.
flock()을 사용하여이 문제를 해결했지만 여전히 동일한 문제가있었습니다. 두 시스템 호출이 같은 pid에서오고 있기 때문입니다. 비록 열 및 읽기의 각 집합과 관련된 다른 파일 설명자가 있습니까? 레코드의 경우 open() 호출은 유효한 파일 설명자를 반환합니다.
결과적으로 문제로 해결할 수있는 방법이 있는지 궁금합니다. 프로그램의 관점에서 보자면, 같은 포트에서 두 번의 open() 호출이 성공하면 큰 문제가되지 않습니다. 왜냐하면 프로그래머는 자신이 일으키고있는 우스꽝스러운 점을 알고 있어야하기 때문입니다. 그러나 포트를 열면 해당 포트에 액세스 할 수있는 유일한 프로세스라는 사실을 알고 싶습니다.
도움 주셔서 감사합니다.
Linux에서 직렬 포트 및 기타 장치를 잠 그려면 [ "모범 사례"방법에 관한 질문] (http://stackoverflow.com/questions/30316722/what-is-the-best-practice- Linux 용 직렬 포트 및 기타 장치). –