添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Sun Studio 12:Fortran 编程指南

2.1.4 向程序传递文件名

文件系统没有任何自动工具可将 Fortran 程序中的逻辑单元号与物理文件相关联。

但是,有几种令人满意的方式可将文件名传递给 Fortran 程序。

2.1.4.1 通过运行时参数和 GETARG 可以使用库例程 getarg (3F) 在运行时将命令行参数读入字符变量。参数会被解释为文件名并在 OPEN 语句的 FILE= 说明符中使用:

CHARACTER outfile*40 C Get first arg as output file name for unit 51 CALL getarg(1,outfile) OPEN(51,FILE=outfile) WRITE(51,*) ’Writing to file: ’, outfile demo% f95 -o tstarg testarg.f demo% tstarg AnyFileName demo% cat AnyFileName Writing to file: AnyFileName demo%

2.1.4.2 通过环境变量和 GETENV 同样,可以使用库例程 getenv (3F) 在运行时将任何环境变量的值读入字符变量,该字符变量随后被解释为文件名:

CHARACTER outfile*40 C Get $OUTFILE as output file name for unit 51 CALL getenv(’OUTFILE’,outfile) OPEN(51,FILE=outfile) WRITE(51,*) ’Writing to file: ’, outfile demo% f95 -o tstenv testenv.f demo% setenv OUTFILE EnvFileName demo% tstenv demo% cat EnvFileName Writing to file: EnvFileName demo%

使用 getarg getenv 时,应该注意前导或尾随的空格。(Fortran 95 程序可以使用内函数 TRIM 或更早的 FORTRAN 77 库例程 LNBLNK() )在本章开头的示例中,可以随 FULLNAME 函数的代码行编写更加灵活的代码来接受相对路径名。

2.1.4.3 命令行 I/O 重定向和管道

将物理文件与程序的逻辑单元号相关联的另一种方式是重定向或管道输送预连接的标准 I/O 文件。重定向或管道在运行时执行命令中使用。

采用这种方式,读取标准输入(单元 5)和写入标准输出(单元 6)或标准错误(单元 0)的程序可以通过重定向(在命令行中使用 <、>、>>、>&、|、|&、2>、2>&1 ),读取或写入其他任何命名文件。

参见下表:

表 2–1 csh/sh/ksh 命令行重定向和管道

有关命令行重定向和管道的详细信息,请参见 csh ksh sh 手册页。