Исторически, решение опроса (цикл, который определяет, существует ли указанный «файл» через некоторый интервал), было бы «лучшим».Если вы используете современный Linux (2.6.12+, но вы не указали), вы можете использовать inotify , который, вероятно, делает именно то, что вам нужно - отслеживать каталог для создания файла (IN_CREATE)).Статья в Википедии, на которую я ссылался, дает очень хороший обзор и полезные ссылки.
Часть, где она отключается, довольно сложна.Когда файл удаляется в * nix (с давних времен), его файловые дескрипторы остаются в силе.Поэтому я бы предположил, что extern int errno;
может быть вашим решением;ваш пост был помечен буквой "C", так что нечего "выбрасывать", но если вы проверите это, когда ваш read
(или любой другой) вызов не удался, вы можете получить понимание.
Также проверьте libudev, которыйконечно, более специфичен для устройств, нежели общая философия «все - файл» * nix.