Вы не можете получить имя файла точно в качестве ввода; оболочка будет обрабатывать все эти перенаправления, не сообщая вам.
В случае прямого перенаправления < file
вы можете получить путь к файлу, связанный с stdin, используя fstat
, чтобы получить для него номер индекса, а затем пройтись по иерархии файлов, аналогично find / -inum
, чтобы получить путь, соответствующий Это. (Может быть более одного такого пути к файлу из-за ссылок.)
Но тебе никогда не нужно этого делать. Как уже говорили другие, если вам нужно знать имена файлов, вы должны принимать имена файлов в качестве аргументов.