问题描述
$ CC交流转换器
。$ / a.out的< inpfilename
我要打印inpfilename在标准输出上。
我怎么做 ?
感谢您提前帮助...
您不能准确得到文件名作为输入; shell将处理所有重定向东西瞒着你。
在直接&LT的情况;文件
重定向,您可以检索通过使用标准输入相关的文件路径 FSTAT
来得到一个inode编号它,然后同样走在文件层次为查找/ -inum
来获得与其匹配的路径。 (可能有多个这样的文件路径,由于连结)。
但你不应该永远需要做到这一点。正如其他人所说,如果你需要知道文件名,你应该采取的文件名作为参数。
$cc a.c
$./a.out < inpfilename
I want to print inpfilename on stdout.How do I do that ?Thanks for the help in advance...
You can't get the filename exactly as input; the shell will handle all that redirection stuff without telling you.
In the case of a direct < file
redirection, you can retrieve a filepath associated with stdin by using fstat
to get an inode number for it then walking the file hierarchy similarly to find / -inum
to get a path that matches it. (There might be more than one such filepath due to links.)
But you shouldn't ever need to do this. As others have said, if you need to know filenames you should be taking filenames as arguments.
这篇关于在C语言中如何打印文件的文件名被重定向为壳输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!