Домашнее задание? Если вам разрешено использовать open
, то решение состоит в том, чтобы попытаться открыть файл. Если вызов выполнен успешно, файл существует. Если это не удалось, то его не существует.
Редактировать: строго говоря, вы также должны проверить, что errno == ENOENT
. В противном случае произошла ошибка другого типа, не позволяющая открыть файл.
Не забудьте закрыть возвращенный файл после успешного вызова.
Кстати, пример в вашем вопросе не совсем корректен. open также может преуспеть, возвращая 0. Это необычно, поскольку fd 0 обычно уже занято.