Можно проверить, поступило ли что-то с на STDIN (с использованием неблокирующего чтения, select
или ioctl FIONREAD
), но невозможно проверить, идет ли что-то на stdin, поскольку это еще не произошло.
Невозможность в стороне, вы просите нарушить соглашение.Например, возьмите cat
, perl
, sort
и т. Д. И т. Д. Если вы не предоставите аргументов, они с радостью будут ждать на STDIN, пока вы не предоставите то, что ему нужно.
Пользователь знает, какиспользуйте man tool
или tool --help
для получения информации.