如何获取充当stdin / stdout的文件名?
我有以下问题。我想在Fortran90中编写一个程序,我希望能够像这样调用:
./program.x < main.in > main.out
除了“main.out”(我可以在调用程序时设置其名称),还必须编写辅助输出,我希望它们具有与“main.in”或“main.out”类似的名称(它们是实际上并没有被称为“主要”);但是,当我使用时:
INQUIRE(UNIT=5,NAME=sInputName)
sInputName的内容变为“Stdin”而不是文件名。有没有办法获取程序调用时链接到stdin / stdout的文件名?
没有找到相关结果
已邀请:
2 个回复
久纳禾澎
因此,一种解决方案是重新设计程序,以便输出文件是显式参数。
这样你的程序就知道了文件名。成本是您的程序现在负责打开(并可能创建)该文件。 也就是说,在Linux系统上,您实际上可以找到标准文件句柄指向特殊/ proc文件系统的位置。每个文件描述符都会有符号链接
对不起,我不知道fortran,但检查输出文件的psudeo代码方式可能是:
请记住我之前说过的内容,没有任何内容,这实际上是一个普通的文件。它可能是一个终端设备,一个管道,一个网络套接字,无论如何......另外,我不知道除了redhat / centos linux之外还有哪些其他操作系统,所以它可能不那么便携。更多的诊断工具。
净爽
和/或
可能有所帮助。它们是在fortran 2003中引入的,并返回用于调用程序的完整命令行或指定的参数。