7.2 f90_unix_dir
このモジュールは ISO/IEC 9945-1:1990 Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language] で詳細に規定される機能に対するFortran APIの一部を提供するものです。
このモジュール中の手続きはセクション 5.2 ワーキングディレクトリ、 5.3.3 ファイル作成マスクの設定、 5.3.4 ファイルへのリンク、 5.4 特殊ファイルの作成、 5.5 ファイルの削除 に由来するものです。
エラー処理についてはF90_UNIX_ERRNOに記述されています。
省略可能なERRNO引数を用いた手続きに対し、エラーが生じERRNO
が存在しなかった場合には、プログラムは終了させられる点に注意してください。
このモジュール中のすべての手続きは総称的であると同時に個別的でもあります。
7.2.1 パラメータ
INTEGER,PARAMETER :: MODE_KINDファイルアクセス権限(ISO/IEC 9945-1参照)を表すのに使用される整数種別。 個別のアクセス権限に対応したパラメータは
F90_UNIX_FILEに含まれています。
7.2.2 手続き
SUBROUTINE CHDIR(PATH,ERRNO) CHARACTER(*),INTENT(IN) :: PATH INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO現行のワーキングディレクトリを
PATHにセットします。
PATH中の末尾の空白は意味を持つ場合があるので注意してください。
ERRNOが存在する場合にはエラーステータスを受け取ることができます。
起りうるエラー条件にはEACCES, ENAMETOOLONG, ENOTDIR,
ENOENTがあります(F90_UNIX_ERRNO参照)。
SUBROUTINE GETCWD(PATH,LENPATH,ERRNO) CHARACTER(*),OPTIONAL,INTENT(OUT) :: PATH INTEGER(int32),OPTIONAL,INTENT(OUT) :: LENPATH INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO現行のワーキングディレクトリ情報にアクセスします。
PATHが存在する場合には現行ワーキングディレクトリの名称を受け取る
ことができます。その際、現行ワーキングディレクトリ名称の長さがPATH
の長さと異なった場合には、空白の追加、あるいは切取りが適宜行われます。
LENPATHが存在する場合には現行ワーキングディレクトリ名称の長さを
受け取ることができます。
ERRNOが存在する場合にはエラーステータスを受け取ることができます。
PATH, LENPATHが共に存在しなかった場合にはエラーEINVAL
が発生します。現行ワーキングディレクトリへのパスがサーチできなかった場合
にはエラーEACCESが発生します。PATHが存在するものの
LENPATHが存在しなかった場合で、かつPATHが現行ワーキングディ
レクトリ名称よりも短かった場合には、エラーERANGEが発生します。
(F90_UNIX_ERRNO参照)
SUBROUTINE LINK(EXISTING,NEW,ERRNO) CHARACTER(*),INTENT(IN) :: EXISTING,NEW INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO既存のファイル(
EXISTINGで名称指定されたもの)に対し新たなリンク
(その名称はNEWで与えられる)を作成します。
起りうるエラーにはEACCES, EEXIST, EMLINK,
ENAMETOOLONG, ENOENT, ENOSPC, ENOTDIR,
EPERM, EROFS, EXDEVがあります
(F90_UNIX_ERRNO参照)。
SUBROUTINE MKDIR(PATH,MODE,ERRNO) CHARACTER(*),INTENT(IN) :: PATH INTEGER(mode_kind),INTENT(IN) :: MODE INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO
PATHで指定された名称を持ち、モード(F90_UNIX_FILE参照)が
MODEの新たなディレクトリを作成します。
PATH中の末尾の空白は意味を持つ場合があるので注意してください。
起りうるエラーにはEACCES, EEXIST, EMLINK,
ENAMETOOLONG, ENOENT, ENOSPC, ENOTDIR,
EROFSがあります(F90_UNIX_ERRNO参照)。
SUBROUTINE MKFIFO(PATH,MODE,ERRNO) CHARACTER(*),INTENT(IN) :: PATH INTEGER(mode_kind),INTENT(IN) :: MODE INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO
PATHで指定された名称を持ち、モードがMODEの新たなFIFO特殊
ファイルを作成します。
PATH中の末尾の空白は意味を持つ場合があるので注意してください。
起りうるエラーにはEACCES, EEXIST, ENAMETOOLONG,
ENOENT, ENOSPC, ENOTDIR, EROFSがあります
(F90_UNIX_ERRNO参照)。
SUBROUTINE RENAME(OLD,NEW,ERRNO) CHARACTER(*),INTENT(IN) :: OLD CHARACTER(*),INTENT(IN) :: NEW INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNOファイル名称を
OLDからNEWに変更します。
ファイルNEWが存在した場合には、それは最初に削除されます。
OLDまたはNEW中の末尾の空白は意味を持つ場合があるので注意
してください。
起りうるエラーにはEACCES, EBUSY, EEXIST,
ENOTEMPTY, EINVAL, EISDIR, ENAMETOOLONG,
EMLINK, ENOENT, ENOSPC, ENOTDIR, EROFS
, EXDEVがあります(F90_UNIX_ERRNO参照)。
SUBROUTINE RMDIR(PATH,ERRNO) CHARACTER(*),INTENT(IN) :: PATH INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNOディレクトリ
PATHを削除します。
PATH中の末尾の空白は意味を持つ場合があるので注意してください。
起りうるエラーにはEACCES, EBUSY, EEXIST,
ENOTEMPTY, ENAMETOOLONG, ENOENT, ENOTDIR,
EROFSがあります(F90_UNIX_ERRNO参照)。
SUBROUTINE UMASK(CMASK,PMASK) INTEGER(mode_kind),INTENT(IN) :: CMASK INTEGER(mode_kind),OPTIONAL,INTENT(OUT) :: PMASK呼出し元プロセスのファイルモード作成マスクを
CMASKにセットします。
PMASKが存在した場合には、該当マスクのそれまでの値を受け取ること
ができます。
SUBROUTINE UNLINK(PATH,ERRNO) CHARACTER(*),INTENT(IN) :: PATH INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNOファイル
PATHを削除します。
PATH中の末尾の空白は意味を持つ場合があるので注意してください。
起りうるエラーにはEACCES, EBUSY, ENAMETOOLONG,
ENOENT, ENOTDIR, EPERM, EROFSがあります
(F90_UNIX_ERRNO参照)。
