Fortran Coder

查看: 23133|回复: 9
打印 上一主题 下一主题

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

[复制链接]

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
跳转到指定楼层
楼主
发表于 2019-12-22 13:46:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
似乎iso_fortran_env内建库已经要求支持获得编译器信息,但是不能获得操作系统的信息吗?
另外,文件夹的处理依然也是没有吗?只能依靠像ifort编译器添加的额外库才能实现?
很希望能有像python的os.walk和os.getcwd,os.chdir,os.path.abspath这一类的函数功能啊……
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2019-12-22 20:12:03 | 只看该作者
只能靠预处理,ivf可以这么用
!DIR$ if defined (_WIN32)

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
板凳
 楼主| 发表于 2019-12-23 01:48:51 | 只看该作者
li913 发表于 2019-12-22 20:12
只能靠预处理,ivf可以这么用
!DIR$ if defined (_WIN32)

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

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
地板
发表于 2019-12-23 11:13:05 | 只看该作者
!DIR$ if defined (_WIN32)
character(*),parameter::OS='win'
!DIR$ else
character(*),parameter:: os='linux'
!DIR$ end if

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
5#
发表于 2019-12-23 11:21:36 | 只看该作者
http://fcode.cn/guide-109-1.html预处理

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

QQ截图20191223112119.png

250

帖子

2

主题

0

精华

宗师

F 币
1731 元
贡献
872 点

规矩勋章

6#
发表于 2019-12-23 17:09:34 | 只看该作者
IVF中可以用system执行系统命令
USE IFPORT
I = SYSTEM("dir > file.lst")

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

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

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
8#
 楼主| 发表于 2019-12-24 01:21:18 | 只看该作者
fcode 发表于 2019-12-23 21:33
Fortran是一个完全平台无关的语言。所以它可能跑在一个无操作系统的平台上,甚至这个平台没有文件夹的概念 ...

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

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
9#
 楼主| 发表于 2019-12-24 01:28:40 | 只看该作者
li913 发表于 2019-12-23 11:21
http://fcode.cn/guide-109-1.html预处理

非常感谢

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
10#
 楼主| 发表于 2019-12-24 01:29:24 | 只看该作者
necrohan 发表于 2019-12-23 17:09
IVF中可以用system执行系统命令
USE IFPORT
I = SYSTEM("dir > file.lst")

谢谢,执行系统命令似乎语言标准里倒也有
不过ivf里确实有很多便利的os的api
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-21 23:43

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表