gpt4 book ai didi

fortran - 单位号的 Fortran 标准是如何形成的?

转载 作者:行者123 更新时间:2023-12-04 21:06:00 36 4
gpt4 key购买 nike

在 fortran 中,stderr 是单元 0。Stdin 是单元 5,stdout 是单元 6。就 Google 而言,这似乎是一个克雷决定,但尚不清楚他们为什么选择这样。为什么不是 1 和 2? 1-4 在将 stdin 移出到 5 和 6 的旧 Fortran 编译器上有什么用?

最佳答案

根据 this page (Clive G. Page 的“Fortran77 专业程序员指南”),单元 5 和 6 分别分配给 stdin 和 stdout,以便向后兼容,并且读卡器通常连接到“单元 5”,行式打印机连接到“单元 6",引用:

In order to retain compatibility with Fortran66, many systems provide other pre-connected files. It used to be customary to have unit 5 connected to the card-reader, and unit 6 to the line printer. Other units were usually connected to disc files with appropriate names: thus unit 39 might be connected to a file called FTN039.DAT or even TAPE39.



并不是说这给出了为什么选择数字 5 和 6 的任何逻辑,而只是一些历史背景。在历史机器上连接到单元号 1-4 的部分仍然保持开放状态。以下旧书/手册可能会有所启发:

根据 D.D. Fisher et al. An Introduction to Fortran Programming ,第 90 页,并非所有 FORTRAN 编译器都将单元 5 和 6 用于读卡器输入和行式打印机输出:
Waterloo FORTRAN IV 和 IBM System/360 FORTRAN IV 确实为此使用了单元 5 和 6,在 IBM 1130 上,但是,单元 2 和 1 用于读卡器输入和行式打印机输出。

最后根据 FORTRAN-10/20 and VAX FORTRAN Compatibility Manual ,第 3-6 页,在 FORTRAN-10/20 的情况下,“单元 1 是磁盘,单元 2 是读卡器,单元 3 是行式打印机,单元 5 是终端”。使用 VAX FORTRAN,单元 5 对终端的 I 和 O 都有好处。
也许这最后一部分表明,因为除了读卡器输入和行式打印机输出之外,一些机器开始具有用于 I/O 的终端,并且首选/默认设备可能已成为输入和输出的终端,因此更高的终端-相关单元已成为 I/O 默认值。

关于fortran - 单位号的 Fortran 标准是如何形成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45826483/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com