#linux #ipc
#linux #ipc
Вопрос:
Я использую опрос в своей программе, чтобы проверить, есть ли что-то для чтения из канала. Когда нет, опрос не должен устанавливать POLLIN в revents. Но он сделал это, а затем, когда я попытался прочитать из своего канала, чтение вернуло ноль, что означает, что было прочитано ровно ноль байтов. Что происходит?
Вот вывод из strace:
.
.
.
select(6, [4 5], NULL, NULL, NULL) = 1 (in [5])
dup2(5, 0) = 0
poll([{fd=5, events=POLLIN}], 1, 0) = 1 ([{fd=5, revents=POLLIN}])
read(5, "", 1) = 0
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=3, tv_nsec=0}, ^C{tv_sec=1, tv_nsec=251473866}) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
strace: Process 45891 detached