이것은 불가능할 수도 있지만... 쓰기 위해 파일을 열고(이름을 제공함) 중지하라는 메시지가 나올 때까지 해당 파일에 바이트를 덤프하라는 명령을 내릴 수 있는 타사 응용 프로그램(호기심으로 중얼거림)이 있습니다. 추가하기 위해 파일을 열지 않습니다. 파일이 이미 존재하는 경우 이름을 변경하고 다시 시도합니다. 모든 것이 훌륭하고 훌륭하고 표준적이었습니다. 몇 시간 동안 쓸 수 있습니다(그리고 문제는 디스크를 가득 채웁니다).
나는 그것이 쓰는 모든 것을 가로채서 다른 프로세스에서 읽고 싶습니다. 이상적으로는 디스크에 전혀 가지 않을 것이지만, 그러한 타협 중 일부는 받아들일 것입니다.
확실한 해결책은 파일이 작성되는 동안 읽는 것입니다. truncate() 내가 읽고 다시 읽은 내용은 자를 때 파일이 작아지지 않기 때문에 작동하지 않았습니다. mumble이 지정되지 않았기 때문에 그렇게 될 것입니다. 중단된 부분부터 계속합니다. 이상적으로는 그것이 일반 파일을 생성하고 쓰고 있다고 생각하도록 속이는 방법이 필요하지만 실제로는 모든 것을 나에게 파이프하는 것뿐입니다. 나는 이를 위해 내 자신의 파일 시스템 코드를 작성하고 싶지 않습니다(보기보다 훨씬 쉬운 경우는 제외).
궁극적으로 나는 녹음된 사운드를 가져와 해시하고 /dev/random에 제공하고 싶습니다. mumble을 /dev/random으로 지정하는 것만으로는 작동하지 않습니다. /dev/random이 존재하므로 이를 사용하지 않기 때문입니다.
영리한 트릭이 있나요? 그렇지 않다면 디렉토리처럼 보이는 사용자 영역 코드를 작성할 수 있는 방법이 있습니까? 다른 모든 방법이 실패하면 필요한 작업을 수행하는 파일 시스템을 작성하는 것이 매우 간단합니까?
답변1
당신은 그것을 사용할 수 있습니다LD_예압Mumble이 다른 모든 라이브러리보다 먼저 지정한 라이브러리를 로드하게 합니다. 파일 이름에 따라 표준 C 라이브러리에 대한 호출을 전달하여 표준 동작을 구현하거나 mumble을 속이기 위해 특별한 작업을 수행하는 사용자 정의 open()
/ 등을 사용하여 작은 라이브러리를 작성할 수 있습니다 .stat()