Bash에서 정확히 하나의 읽기 시스템 호출을 만드는 방법은 무엇입니까?

Bash에서 정확히 하나의 읽기 시스템 호출을 만드는 방법은 무엇입니까?

내가 원하는 것은 줄 바꿈과 상관없이 데이터가 도착할 때 데이터를 처리하는 것입니다.

  • read -n $nstdin에서 파이프와 함께 사용할 때 Bash는 read (0, buf, 1)바이트당 하나의 syscall을 생성하는데, 이는 처리할 데이터 양이 적지 않은 경우(예: 1MB 이상) 너무 느립니다.
  • Bash를 사용하면 도달할 때까지 read -N $nsyscall을 반복하므로 지금까지 수신된 처리를 시작할 수 없습니다.read (0, buf, <RestOf$n>)$n
  • 사용할 때 일부 데이터를 읽었더라도 read -N $n -t 0.1비어 있습니다 . $REPLY즉, 데이터가 손실됩니다. 이것은 버그입니까 아니면 Bash의 기능입니까?

read그렇다면 임의의 count인수를 사용하여 정확히 하나의 syscall을 만들고 bash지금까지 수신된 입력을 처리하려면 어떻게 해야 합니까 ?

관련 정보