【问题标题】:XL Fortran set permissions on BluegeneXL Fortran 在 Bluegene 上设置权限
【发布时间】:2017-11-29 10:07:37
【问题描述】:

我正在研究 IBM Bluegene/Q 系统,我想使用 Fortran 创建一个文件夹。由于 Bluegene 不允许使用通常的“呼叫系统”,我不得不求助于它们的内在功能:

CALL mkdir ("/home/luc/testfiles\0", %val(755))

如图所示:https://wiki.scinet.utoronto.ca/wiki/images/2/23/Bgqfcompiler.pdf

这会创建文件夹,但是权限都是错误的。如何在 IBM Bluegene/Q 系统上创建具有适当权限的文件夹?他们所有的文档都很糟糕,我找不到一个可行的例子。

【问题讨论】:

  • BlueGene 似乎只有 XL Fortran 版本 14,而自 IBM XL Fortran 15.3 for AIX 和 Linux 起支持 execute_command_line。
  • 请描述什么是“全错”。究竟发生了什么?您想要哪些权限?你得到了哪个?在哪个文件系统上?
  • ls -lah 产生 d-wxr----t 2 jias1217 jias12 4.0K Jun 27 08:29 test 我想要 775 或类似的,这样我以后可以访问该文件夹。
  • BG 无论如何都没有在计算节点上运行“正常”操作系统,至少据我所知,所以即使它在那里,也可能必须修改 execute_command_line 的参数,假设操作系统对所需的操作有适当的支持
  • @IanBush 我正在尝试使用 BG 内部 fortran 函数,例如 mkdir (p. 59 redbooks.ibm.com/redbooks/pdfs/sg247948.pdf),但为我设置权限不适用于这些。

标签: permissions fortran chmod mkdir


【解决方案1】:

mkdir 是在 C 库中实现的 POSIX 函数。你可以在这里找到它的文档:http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdir.html。您可以在此处找到 mkdir 的模式/权限参数的值:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html#tag_13_62。请注意,这些值是八进制的。

在这种情况下,您为第二个参数提供的值是错误的。您传递的是十进制 755,即八进制 1363。手册中的示例传递了十进制 448,即八进制 0700。如果您想要八进制 0755,则应传递十进制 493。(或者您可以传递 %val(o'0755') )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2011-08-03
    • 2010-12-23
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多