получение стандартного ввода с призывом открыть обычный файл в linux - PullRequest
0 голосов
/ 14 марта 2020

У меня есть программа, которая открывает файл stati c с помощью sys_open () и хочет получить дескриптор файла, равный нулю (= stdin). У меня есть возможность записать в файл, удалить его или изменить его, поэтому я попытался создать символическую c ссылку на / dev / stdin из имени файла stati c. Он открывает стандартный ввод, но возвращает с самым низким доступным значением fd (не равным нулю). Как я могу заставить системный вызов возвращать ноль, не перехватывая системный вызов или не изменяя саму программу? это вообще возможно?

(Это часть проблемы, а не сценарий реального случая)

Спасибо, как всегда

1 Ответ

2 голосов
/ 14 марта 2020

Posix гарантирует , что будет возвращено самое низкое из доступных FD. Поэтому вы можете просто вызвать программу с закрытым stdin:

./myprogram 0>&-
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...