2012-05-05 3 views
0

두 가지 프로그램이 있습니다. 그 중 하나는 일부 데이터를 생성하여이를 FIFO에 넣고 다른 하나는 FIFO에서이 데이터를 읽고 그 데이터와 함께 처리합니다. 독서 프로그램의 수를 제한하는 방법? 나는 FIFO의 크기를 제한하거나 내부에 얼마나 많은 데이터가 있는지 확인했지만, 흥미로운 것을 발견하지는 못했다. 당신의 도움을 주셔서 감사합니다.fifo 사용자의 수를 제한하는 방법은 무엇입니까?

답변

1

fifo 파이프는 시스템 파일이므로 액세스를 제어 할 수있는 유일한 방법은 일반적인 방법 (소유권 및 사용 권한)입니다. 그러나 man flock도 참조하십시오. 파일 잠금은 리눅스에서 실행 가능하지 않습니다. 즉, 무시할 수 있지만, 파일 잠금에 순응하도록 독자를 구현하면 문제가 해결됩니다.

So : 문제가 이고 원하지 않고 간섭적인 액세스 인 경우이를 방지하려면 소유권과 사용 권한을 사용하십시오. 그렇지 않으면 파일 잠금을 사용하십시오.

0

(f) stat()를 사용하여 FIFO의 링크 수를 확인하십시오. 결정한 한계를 넘어 서면 독서 프로그램이 열리지 않도록하십시오.

+0

st_nlink는 우리가 찾고있는 것이 아니라고 생각합니다. 어떤 struct stat의 필드가이 경우에 유용합니까? –

+0

@WojciechReszelewski : st_nlink는 제가 염두에 두었던 것입니다, 그렇습니다. 왜 그것이 명시된 목적에 적합하지 않다고 생각합니까? – janneb

+0

루프에서 fstat를 실행하고 st_nlink를 인쇄하면 더 많은 독자를 실행할 때 변경되지 않습니다. –

관련 문제