실제로 문자를 읽지 않고 문자 특수 파일에서 문자를 읽는 경우 파일이 차단되는지 알 수 있기를 원합니다. 이것이 가능합니까?
답변1
0 timeout 을 사용하여 bash에서 이 작업을 수행할 수 있습니다 read
.
if read -t 0
then read data
fi
stdin 이외의 파일 설명자(예: 3)를 테스트하려면 를 사용하십시오 -u 3
. stdin에 준비된 문자 수를 확인하려면 작은 Perl 스크립트를 사용할 수 있습니다.
#!/usr/bin/perl
require 'sys/ioctl.ph';
$size = pack("L", 0);
ioctl(*STDIN, FIONREAD(), $size) or die "ioctl fail: $!\n";
$size = unpack("L", $size);
print "stdin ready: $size\n";
답변2
답변3
C 또는 C++에서는 일반적으로 pselect()
읽을 데이터가 있는지 테스트합니다. 이를 위해 파일 설명자 모드를 비차단으로 설정할 필요는 없습니다.