fattach サブルーチン

目的

STREAMS ベースのファイル記述子をファイルに付加します。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <stropts.h>
int fattach(int fildes, const char *path);

説明

添付 サブルーチンは STREAMS ベースのファイル記述子をファイルに付加し、事実上、パス名を フィルドに関連付けます。 フィルド 引数は、STREAMS ファイルに関連した有効なオープン・ファイル記述子でなければなりません。 パス 引数は、既存のファイルのパス名を指します。 プロセスは、適切な特権を持っているか、または パス によって指定されたファイルの所有者であり、書き込み許可を持っている必要があります。 添付 サブルーチンが正常に呼び出されると、STEAMS ファイルがファイルから切り離されるまで、 パス で指定されたファイル名を持つすべてのパス名が、 フィルドに関連した STREAMS ファイルの名前になります。 STREAMS ファイルは、複数のファイルに接続することができ、それに関連した複数のパス名を持つことができます。

指定された STREAMS ファイルの属性は次のように初期化されます。許可、ユーザー ID、グループ ID、および時刻は パスで指定されたファイルの属性に設定され、リンクの数は 1 に設定され、サイズとデバイス ID は フィルドに関連付けられた STREAMS ファイルの属性に設定されます。 指定された STREAMS ファイルのいずれかの属性がその後 (例えば、 ChMOD サブルーチンによって) 変更された場合、基礎となるファイルの属性も、 フィルド が参照する STREAMS ファイルの属性も影響を受けません。

添付 サブルーチンの前にオープンされた、基礎となるファイルを参照するファイル・ディスクリプターは、引き続き基礎となるファイルを参照します。

パラメーター

項目 説明
fildes オープン STREAMS ベースのオブジェクトを識別するファイル記述子。
パス フィルドに関連付けられる既存のパス名。

戻り値

項目 説明
0 正常終了。
-1 正常に実行されず、 エラー番号 が以下のいずれかに設定されました。

Errno 値

項目 説明
EACCES パス接頭部のコンポーネントに対する検索許可が拒否されたか、またはプロセスが パス の所有者であるが、 パスによって指定されたファイルに対する書き込み許可を持っていません。
EBADF フィルド によって参照されているファイルは、オープン・ファイル記述子ではありません。
ENOENT パス のコンポーネントが既存のファイルの名前を指定していないか、 パス が空ストリングです。
ENOTDIR パス接頭部のコンポーネントがディレクトリーではありません。
EPERM プロセスの実効ユーザー ID が パス で指定されたファイルの所有者ではなく、プロセスに適切な特権がありません。
EBUSY パス で指定されたファイルは、現在マウント・ポイントであるか、STREAMS ファイルが接続されています。
ENAMETOOLONG path のサイズが {PATH_MAX} を超えているか、 path のコンポーネントが {NAME_MAX} より長くなっています。
ELOOP パスの解決中に検出されたシンボリック・リンクが多すぎます。
EINVAL フィルド 引数が STREAMS ファイルを参照していません。
ENOMEM 使用可能なストレージ・スペースが不十分です。