You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran OPEN语句中'file=*'参数的含义是什么?

Fortran 77中OPEN语句file=*的含义与用途

在Fortran 77里,file=*是OPEN语句的合法参数,它的核心作用是将指定的单元关联到系统预连接的标准I/O流,而非打开一个磁盘文件。具体细节如下:

  • 代表的对象:file=*指向的是系统默认的标准输入(stdin,通常对应单元号5)和标准输出(stdout,通常对应单元号6)。这些流是程序启动时就已预连接好的,无需显式打开也能直接使用,但用file=*显式执行OPEN操作,是明确确认单元与标准流的绑定关系。
  • 与标准输入/管道的关系:是的,它完全支持标准输入读取和管道操作。当你通过OPEN(UNIT=*, FILE=*)或指定具体单元号(比如OPEN(UNIT=5, FILE=*))后,对该单元的READ/WRITE操作就会直接和stdin/stdout交互。比如:
    PROGRAM STDIO_TEST
          CHARACTER*20 INPUT_STR
    

C 显式绑定单元5到标准输入
OPEN(UNIT=5, FILE=)
READ(5, '(A)') INPUT_STR
C 直接用
单元(默认关联stdout)输出
WRITE(*, '(A)') "你输入的内容是: ", INPUT_STR
END

这个程序可以通过管道传递输入(比如在shell中执行`echo "Hello Fortran" | ./stdio_test`),或者通过重定向读取文件(`./stdio_test < input.txt`),都能正常工作。
- **额外说明**:Fortran 77中预连接的标准错误流(stderr,通常是单元号0)也可以用类似方式处理,不过`file=*`主要针对stdin和stdout。另外,预连接单元无需显式OPEN也能直接读写,`file=*`更多是用于明确代码意图,或者在某些需要重新绑定单元的场景下使用。

内容的提问来源于stack exchange,提问作者kris44dad
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:42:05