API を使用した操作の実行

統合ファイル・システム・オブジェクトに対する操作を実行する多くのアプリケーション・プログラミング・インターフェース (API) は、C 言語の関数形式になっています。

選択できる関数の種類には以下の 2 種類あり、どちらの関数も Integrated Language Environment® (ILE) C を使用して作成されたプログラム内で使用できます。

  • IBM® i オペレーティング・システムに組み込まれている統合ファイル・システム C 関数。
  • ILE C ライセンス・プログラムで提供される C 関数。

統合ファイル・システムがサポートする出口プログラムについての詳細は、表 2を参照してください。

統合ファイル・システム機能が作動するのは、統合ファイル・システム・ストリーム入出力サポートを介した場合のみです。 以下の API がサポートされています。

表 1. 統合ファイル・システム API
関数 説明
access() ファイルのアクセス可能性を判別する
accessx() ユーザーのクラスのファイルのアクセス可能性を判別する
chdir() 現行ディレクトリーの変更
chmod() ファイル権限を変更する
chown() ファイルの所有者とグループを変更する
close() ファイル記述子をクローズする
closedir() ディレクトリーをクローズする
creat() 新しいファイルを作成する、または既存のファイルに上書きする
creat64() 新しいファイルを作成する、または既存のファイルに上書きする (大容量ファイル対応)
DosSetFileLocks() ファイルのバイト範囲をロックおよびアンロックする
DosSetFileLocks64() ファイルのバイト範囲をロックおよびアンロックする (大容量ファイル対応)
DosSetRelMaxFH() ファイル記述子の最大数を変更する
dup() オープン・ファイル記述子を複写する
dup2() オープン・ファイル記述子を別の記述子に複写する
faccessx() 記述子でユーザーのクラスのファイルのアクセス可能性を判別する
fchdir() 記述子で現行ディレクトリーを変更する
fchmod() 記述子でファイル権限を変更する
fchown() 記述子でファイルの所有者とグループを変更する
fclear() ファイルをクリアする
fclear64() ファイルをクリアする (ラージ・ファイル使用可能)
fcntl() ファイル制御処置を実行する
fpathconf() 構成可能なパス名変数を記述子によって入手する
fstat() 記述子によってファイル情報を入手する
fstat64() 記述子によってファイル情報を入手する (ラージ・ファイル使用可能)
fstat64_time64() 記述子によってファイル情報を入手する (ラージ・ファイルおよび time64_t 使用可能)
fstatvfs() 記述子から情報を入手する
fstatvfs64() 記述子から情報を入手する (64 ビット使用可能)
fsync() ファイルへの変更を同期化する
ftruncate() ファイルを切り捨てる
ftruncate64() ファイルを切り捨てる (ラージ・ファイル使用可能)
getcwd() 現行ディレクトリーのパス名を入手する
getegid() 有効なグループ ID を入手する
geteuid() 有効なユーザー ID を入手する
getgid() 実際のグループ ID を入手する
getgrgid() グループ ID を使用してグループ情報を入手する
getgrgid_r() グループ ID を使用してグループ情報を入手する (スレッド・セーフ)
getgrgid_r_ts64() グループ ID を使用してグループ情報を入手する (8 バイト・ポインターによるスレッド・セーフ)
getgrnam() グループ名を使用してグループ情報を入手する
getgrnam_r() グループ名を使用してグループ情報を入手する (スレッド・セーフ)
getgrnam_r_ts64() グループ名を使用してグループ情報を入手する (8 バイト・ポインターによるスレッド・セーフ)
getgroups() グループ ID を入手する
getpwnam() ユーザー名のユーザー情報を入手する
getpwnam_r() ユーザー名のユーザー情報を入手する (スレッド・セーフ)
getpwnam_r_ts64() ユーザー名のユーザー情報を入手する (8 バイト・ポインターによるスレッド・セーフ)
getpwuid() ユーザー ID のユーザー情報を入手する
getpwuid_r() ユーザー ID のユーザー情報を入手する (スレッド・セーフ)
getpwuid_r_ts64() ユーザー ID のユーザー情報を入手する (8 バイト・ポインターによるスレッド・セーフ)
getuid() 実際のユーザー ID を入手する
givedescriptor() 別のジョブにファイル・アクセス権を与える
ioctl() ファイル入出力制御処置を行う
lchown ファイルまたはシンボリック・リンクの所有者とグループを変更する
link() ファイルへのリンクを設定する
lseek() ファイルの読み取り/書き込みオフセットを設定する
lseek64() ファイルの読み取り/書き込みオフセットを設定する (ラージ・ファイル使用可能)
lstat() ファイル情報またはリンク情報を入手する
lstat64() ファイル情報またはリンク情報を入手する (ラージ・ファイル使用可能)
lstat64_time64() ファイル情報またはリンク情報を入手する (ラージ・ファイルおよび time64_t 使用可能)
mkdir() ディレクトリーを作成する
mkfifo() FIFO 特殊ファイルを作成する
mmap() メモリー・マップを作成する
mmap64() メモリー・マップを作成する (ラージ・ファイル使用可能)
mprotect() メモリー・マップ保護を変更する
msync() メモリー・マップを同期化する
munmap() メモリー・マップを除去する
open() ファイルをオープンする
open64() ファイルをオープンする (ラージ・ファイル使用可能)
opendir() ディレクトリーをオープンする
pathconf() 構成可能なパス名変数を入手する
pipe() プロセス間チャネルを作成する
pread() オフセットを指定して記述子から読み取る
pread64() オフセットを指定して記述子から読み取る (ラージ・ファイル使用可能)
pwrite() オフセットを指定して記述子に書き込む
pwrite64() オフセットを指定して記述子に書き込む (ラージ・ファイル使用可能)
QjoEndJournal() ジャーナル処理の終了
QjoRetrieveJournal Information() ジャーナル情報を検索する
QjoRetrieveJournalEntries() ジャーナル項目の検索
QJORJIDI() ジャーナル ID 情報を検索する
QJOSJRNE() ジャーナル項目を送信する
QjoStartJournal() ジャーナル処理の開始
QlgAccess() ファイルのアクセス可能性を判別する (NLS 化パス名を使用)
QlgAccessx() ユーザーのクラスのファイルのアクセス可能性を判別する (NLS 化パス名を使用)
QlgChangeAuthority() 権限を変更する (NLS 化パス名を使用)
QlgChdir() 現行ディレクトリーを変更する (NLS 化パス名を使用)
QlgChmod() ファイル許可を変更する (NLS 化パス名を使用)
QlgChown() ファイルの所有者およびグループを変更する (NLS 化パス名を使用)
QlgCreat() 新規ファイルを作成するか、既存のファイルに上書きする (NLS 化パス名を使用)
QlgCreat64() 新規ファイルを作成するか、既存のファイルに上書きする (ラージ・ファイル使用可能、NLS 化パス名を使用)
QlgCvtPathToQSYSObjName() 統合ファイル・システムのパス名を QSYS オブジェクト名に解決する (NLS 化パス名を使用)
QlgGetAttr() オブジェクトのシステム属性を入手する (NLS 化パス名を使用)
QlgGetcwd() 現行ディレクトリーのパス名を入手する (NLS 化パス名を使用)
QlgGetPathFromFileID() オブジェクトのパス名をファイル ID から入手する (NLS 化パス名を使用)
QlgGetpwnam() ユーザー名についてのユーザー情報を入手する (NLS 化パス名を使用)
QlgGetpwnam_r() ユーザー名についてのユーザー情報を入手する (NLS 化パス名を使用)
QlgGetpwuid() ユーザー ID についてのユーザー情報を入手する (NLS 化パス名を使用)
QlgGetpwuid_r() ユーザー ID についてのユーザー情報を入手する (NLS 化パス名を使用)
QlgLchown() シンボリック・リンクの所有者およびグループを変更する (NLS 化パス名を使用)
QlgLink() ファイルへのリンクを作成する (NLS 化パス名を使用)
QlgLstat() ファイル情報またはリンク情報を入手する (NLS 化パス名を使用)
QlgLstat64() ファイル情報またはリンク情報を入手する (ラージ・ファイル使用可能、NLS 化パス名を使用)
QlgLstat64_time64() ファイル情報またはリンク情報を入手する (ラージ・ファイルおよび time64_t 使用可能、NLS 化パス名を使用)
QlgMkdir() ディレクトリーを作成する (NLS 化パス名を使用)
QlgMkfifo() FIFO 特殊ファイルを作成する (NLS 化パス名を使用)
QlgOpen() ファイルをオープンする (NLS 化パス名を使用)
QlgOpen64() ファイルをオープンする (ラージ・ファイル使用可能、NLS 化パス名を使用)
QlgOpendir() ディレクトリーをオープンする (NLS 化パス名を使用)
QlgPathconf() 構成可能なパス名変数を入手する (NLS 化パス名を使用)
QlgProcessSubtree() ディレクトリー・ツリー内のディレクトリーまたはオブジェクトを処理する (NLS 化パス名を使用)
QlgReaddir() ディレクトリー項目を読み取る (NLS 化パス名を使用)
QlgReaddir_r() ディレクトリー項目を読み取る (スレッド・セーフ、NLS 化パス名を使用)
QlgReadlink() シンボリック・リンクの値を読み取る (NLS 化パス名を使用)
QlgRenameKeep() ファイルまたはディレクトリーの名前を変更する。 名前がすでに存在していれば、新規のもの を保持する (NLS 化パス名を使用)
QlgRenameUnlink() ファイルまたはディレクトリーの名前を変更する。 名前がすでに存在していれば、新規のもの をリンク解除する (NLS 化パス名を使用)
QlgRmdir() ディレクトリーを除去する (NLS 化パス名を使用)
QlgSaveStgFree() オブジェクト・データを保管してその記憶域を解放する (NLS 化パス名を使用)
QlgSetAttr() オブジェクトのシステム属性を設定する (NLS 化パス名を使用)
QlgStat() ファイル情報を入手する (NLS 化パス名を使用)
QlgStat64() ファイル情報を入手する (ラージ・ファイル使用可能、NLS 化パス名を使用)
QlgStat64_time64() ファイル情報を入手する (ラージ・ファイルおよび time64_t 使用可能、NLS 化パス名を使用)
QlgStatvfs() ファイル・システム情報を入手する (NLS 化パス名を使用)
QlgStatvfs64() ファイル・システム情報を入手する (ラージ・ファイル使用可能、NLS 化パス名を使用)
QlgSymlink() シンボリック・リンクを作成する (NLS 化パス名を使用)
QlgUnlink() ファイルをリンク解除する (NLS 化パス名を使用)
QlgUtime() ファイルのアクセス回数および変更回数を設定する (NLS 化パス名を使用)
QlgUtime_time64() ファイルのアクセス回数および変更回数を設定する (time64_t 使用可能、NLS 化パス名を使用) Qp0lReaddir() ディレクトリー項目を拡張子と一緒に読み取る
QP0FPTOS() 各種ファイル・システム機能を実行する
QP0LCHSG() スキャン・シグニチャーを変更する
Qp0lCvtPathToSYSObjName() 統合ファイル・システムのパス名を QSYS オブジェクト名に解決する
QP0LFLOP() オブジェクトに各種操作を実行する
Qp0lGetAttr() オブジェクトのシステム属性を入手する
Qp0lGetPathFromFileID() オブジェクトのパス名をファイル ID から入手する
Qp0lOpen() パス名が NLS 化されたファイルをオープンする
Qp0lProcessSubtree() ディレクトリー・ツリー内のディレクトリーまたはオブジェクトを処理する
Qp0lReaddir() ディレクトリー項目を拡張子と一緒に読み取る
Qp0lRenameKeep() ファイルまたはディレクトリーの名前を変更する。 名前がすでに存在していれば、新規のもの を保持する
Qp0lRenameUnlink() ファイルまたはディレクトリーの名前を変更する。 名前がすでに存在していれば、新規のもの をリンク解除する
QP0LROR() オブジェクト参照子を検索する
QP0LRRO() 参照されるオブジェクトを検索する
QP0LRTSG() スキャン・シグニチャーを検索する
Qp0lSaveStgFree() オブジェクト・データを保管しその記憶域を解放する
Qp0lSetAttr() オブジェクトのシステム属性を設定する
Qp0lUnlink() パス名が NLS 化されたファイルをリンク解除する
Qp0zPipe() ソケットを使ったプロセス間チャネルを作成する
qsysetegid() 有効なグループ ID を設定する
qsysetgroups() 補足グループ ID を設定する
qsyseteuid() 有効なユーザー ID を設定する
qsysetgid() グループ ID を設定する
qsysetregid() 実際の、有効なグループ ID を設定する
qsysetreuid() 実際の、有効なユーザー ID を設定する
qsysetuid() ユーザー ID を設定する
QZipUnzip() ファイルとディレクトリーを圧縮解除する
QzipZip() ファイルとディレクトリーを圧縮する
QZNFNFSO() NFS オプションを実行する
QZNFRTVE() NFS エクスポート情報を検索する
read() ファイルから読み取る
readdir() ディレクトリー項目を読み取る
readdir_r() ディレクトリー項目 (スレッド・セーフ) を読み取る
readdir_r_ts64() ディレクトリー項目を読み取る (8 バイト・ポインターによるスレッド・セーフ)
readlink() シンボリック・リンクの値を読み取る
readv() ファイル (ベクトル) から読み取る
rename() ファイルまたはディレクトリーの名前を変更する。 Qp0lRenameKeep() または Qp0lRenameUnlink() のセマンティクスを持つように定義することができる
rewinddir() ディレクトリー・ストリームをリセットする
rmdir() ディレクトリーを削除する
select() 複数のファイル記述子の入出力状況を調べる
stat() ファイル情報を入手する
stat64() ファイル情報を入手する (ラージ・ファイル使用可能)
stat64_time64() ファイル情報を入手する (ラージ・ファイルおよび time64_t 使用可能)
statvfs() ファイル・システム情報を入手する
statvfs64() ファイル・システム情報を入手する (ラージ・ファイル使用可能)
symlink() シンボリック・リンクを設定する
sysconf() システム構成変数を入手する
takedescriptor() 別のジョブからファイル・アクセス権を受け取る
umask() ジョブに権限マスクを設定する
unlink() ファイルへのリンクを除去する
utime() ファイル・アクセスおよび修正回数を設定する
utime_time64() ファイルのアクセス回数および変更回数を設定する (time64_t 使用可能)
write() ファイルに書き込む
writev() ファイル (ベクトル) に書き込む
注: これらの関数は、IBM i ソケットにも使用されます。
表 2. 統合ファイル・システム出口プログラム
関数 説明
クローズ時の統合ファイル・システム・スキャン出口プログラム close() API などを使用したクローズ処理の間に呼び出されます。 この出口プログラムは、ユーザーが提供する必要があります。
オープン時の統合ファイル・システム・スキャン出口プログラム open() API などを使用したオープン処理の間に呼び出されます。 この出口プログラムは、ユーザーが提供する必要があります。
パス名の処理 API の検索の中で、 呼び出し側の選択基準に一致する各オブジェクトに対する Qp0lProcessSubtree() API によって呼び出されます。この出口プログラムは、ユーザーが提供する必要があります。
記憶域の空きの保管 *STMF オブジェクト・タイプを保管 するために、Qp0lSaveStgFree() API によって呼び出されます。 この出口プログラムは、ユーザーが提供する必要があります。