Fortran Coder

标题: 现在的fortran语言标准是否支持获得操作系统名称 [打印本页]

作者: liudy02    时间: 2019-12-22 13:46
标题: 现在的fortran语言标准是否支持获得操作系统名称
似乎iso_fortran_env内建库已经要求支持获得编译器信息,但是不能获得操作系统的信息吗?
另外,文件夹的处理依然也是没有吗?只能依靠像ifort编译器添加的额外库才能实现?
很希望能有像python的os.walk和os.getcwd,os.chdir,os.path.abspath这一类的函数功能啊……

作者: li913    时间: 2019-12-22 20:12
只能靠预处理,ivf可以这么用
!DIR$ if defined (_WIN32)
作者: liudy02    时间: 2019-12-23 01:48
li913 发表于 2019-12-22 20:12
只能靠预处理,ivf可以这么用
!DIR$ if defined (_WIN32)

非常感谢,能给的详细一点嘛,比如整段代码应该怎么写
另外如果同时测试是不是Linux的话,应该怎么写
作者: li913    时间: 2019-12-23 11:13
!DIR$ if defined (_WIN32)
character(*),parameter::OS='win'
!DIR$ else
character(*),parameter:: os='linux'
!DIR$ end if
作者: li913    时间: 2019-12-23 11:21
http://fcode.cn/guide-109-1.html预处理

QQ截图20191223112119.png (14.22 KB, 下载次数: 415)

QQ截图20191223112119.png

作者: necrohan    时间: 2019-12-23 17:09
IVF中可以用system执行系统命令
USE IFPORT
I = SYSTEM("dir > file.lst")

作者: fcode    时间: 2019-12-23 21:33
Fortran是一个完全平台无关的语言。所以它可能跑在一个无操作系统的平台上,甚至这个平台没有文件夹的概念。
因此,Fortran的语法是很纯粹(Pure)的。就像C语言和C++语言一样。
作者: liudy02    时间: 2019-12-24 01:21
fcode 发表于 2019-12-23 21:33
Fortran是一个完全平台无关的语言。所以它可能跑在一个无操作系统的平台上,甚至这个平台没有文件夹的概念 ...

谢谢回答
有点明白你的意思了,低级语言本从根本上说就不应该存在我提的那些要求
准确说,这些要求根本不可能写在语言规范上,这是不符合低级语言特性的
如果要实现,只能用别的,不通用的方式,比如用编译器附加的API等
作者: liudy02    时间: 2019-12-24 01:28
li913 发表于 2019-12-23 11:21
http://fcode.cn/guide-109-1.html预处理

非常感谢
作者: liudy02    时间: 2019-12-24 01:29
necrohan 发表于 2019-12-23 17:09
IVF中可以用system执行系统命令
USE IFPORT
I = SYSTEM("dir > file.lst")

谢谢,执行系统命令似乎语言标准里倒也有
不过ivf里确实有很多便利的os的api




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2