liudy02 发表于 2019-12-22 13:46:03

现在的fortran语言标准是否支持获得操作系统名称

似乎iso_fortran_env内建库已经要求支持获得编译器信息,但是不能获得操作系统的信息吗?
另外,文件夹的处理依然也是没有吗?只能依靠像ifort编译器添加的额外库才能实现?
很希望能有像python的os.walk和os.getcwd,os.chdir,os.path.abspath这一类的函数功能啊……

li913 发表于 2019-12-22 20:12:03

只能靠预处理,ivf可以这么用
!DIR$ if defined (_WIN32)

liudy02 发表于 2019-12-23 01:48:51

li913 发表于 2019-12-22 20:12
只能靠预处理,ivf可以这么用
!DIR$ if defined (_WIN32)

非常感谢,能给的详细一点嘛,比如整段代码应该怎么写
另外如果同时测试是不是Linux的话,应该怎么写

li913 发表于 2019-12-23 11:13:05

!DIR$ if defined (_WIN32)
character(*),parameter::OS='win'
!DIR$ else
character(*),parameter:: os='linux'
!DIR$ end if

li913 发表于 2019-12-23 11:21:36

http://fcode.cn/guide-109-1.html预处理

necrohan 发表于 2019-12-23 17:09:34

IVF中可以用system执行系统命令
USE IFPORT
I = SYSTEM("dir > file.lst")

fcode 发表于 2019-12-23 21:33:11

Fortran是一个完全平台无关的语言。所以它可能跑在一个无操作系统的平台上,甚至这个平台没有文件夹的概念。
因此,Fortran的语法是很纯粹(Pure)的。就像C语言和C++语言一样。

liudy02 发表于 2019-12-24 01:21:18

fcode 发表于 2019-12-23 21:33
Fortran是一个完全平台无关的语言。所以它可能跑在一个无操作系统的平台上,甚至这个平台没有文件夹的概念 ...

谢谢回答
有点明白你的意思了,低级语言本从根本上说就不应该存在我提的那些要求
准确说,这些要求根本不可能写在语言规范上,这是不符合低级语言特性的
如果要实现,只能用别的,不通用的方式,比如用编译器附加的API等

liudy02 发表于 2019-12-24 01:28:40

li913 发表于 2019-12-23 11:21
http://fcode.cn/guide-109-1.html预处理

非常感谢

liudy02 发表于 2019-12-24 01:29:24

necrohan 发表于 2019-12-23 17:09
IVF中可以用system执行系统命令
USE IFPORT
I = SYSTEM("dir > file.lst")
谢谢,执行系统命令似乎语言标准里倒也有
不过ivf里确实有很多便利的os的api
页: [1] 2
查看完整版本: 现在的fortran语言标准是否支持获得操作系统名称