tail head cat sleep
QR code linking to this page

manページ  — CHFLAGS

名称

chflags, lchflags, fchflags – ファイルフラグを設定する

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <sys/stat.h>
#include <unistd.h>

int
chflags(const char *path, u_long flags);

int
lchflags(const char *path, int flags);

int
fchflags(int fd, u_long flags);

解説

名前が path によって指定されるファイル、または記述子 fd によって参照されるファイルのフラグが flags に変更されます。

lchflags() システムコールは chflags() と同じですが、指定されたファイルがシンボリックリンクだった場合の 動作が異なります。 この場合 lchflags() は、リンクが指している先のファイルではなく、リンク自身のフラグを変更します。

指定されたフラグは次の値の論理和 ( or) を取ることで作成されます。

UF_NODUMP そのファイルを dump の対象外とします。
UF_IMMUTABLE
  そのファイルは変更禁止です。
UF_APPEND そのファイルは末尾への追加だけが可能です。
UF_NOUNLINK そのファイルは名前を変更したり削除できません。
UF_OPAQUE ユニオンファイルシステムのスタックを通じて見るとき、 このディレクトリは不透明です。
SF_ARCHIVED そのファイルはアーカイブ可能です。
SF_IMMUTABLE
  そのファイルは変更禁止です。
SF_APPEND そのファイルは末尾への追加だけが可能です。
SF_NOUNLINK そのファイルは名前を変更したり削除できません。

"UF_IMMUTABLE", "UF_APPEND", "UF_NOUNLINK", "UF_NODUMP", "UF_OPAQUE" フラグは、ファイルの所有者またはスーパユーザのどちらかによって 設定または設定解除できます。

"SF_IMMUTABLE", "SF_APPEND", "SF_NOUNLINK", "SF_ARCHIVED" フラグは、スーパユーザだけが設定または設定解除できます。 スーパユーザのみが設定できるフラグを スーパユーザでないものが設定しようとしても 警告なしで無視されます。 これらのフラグはいつでも設定できますが、 通常は、システムがシングルユーザモードにあるときにだけ 設定解除するのが普通です (詳細については init(8) を参照してください)。

戻り値

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

chflags() システムコールの処理は以下の場合に失敗します:
[ENOTDIR]
  パスの構成要素中にディレクトリ以外のものが含まれています。
[ENAMETOOLONG]
  パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。
[ENOENT]
  指定されたファイルが存在しません。
[EACCES]
  指定されたパスには、検索が許可されていないディレクトリが含まれています。
[ELOOP]
  パス名を変換するときに検出されたシンボリックリンクが多すぎます。
[EPERM]
  実効ユーザ ID がファイルの所有者と一致せず、かつ、実効ユーザ ID が スーパユーザでありません。
[EROFS]
  指定されたファイルは読取り専用ファイルシステム上にあります。
[EFAULT]
  path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。
[EIO] ファイルシステムに読み書きしている間に 入出力 エラーが発生しました。
[EOPNOTSUPP]
  ファイルシステムがファイルフラグをサポートしません。

fchflags() システムコールの処理は以下の場合に失敗します:
[EBADF]
  記述子が有効ではありません。
[EINVAL]
  fd 引数がファイルではなくソケットを参照しています。
[EPERM]
  実効ユーザ ID がファイルの所有者と一致せず、 実効ユーザ ID がスーパユーザではありません。
[EROFS]
  ファイルが読取り専用システム上に存在しています。
[EIO] ファイルシステムに読み書きしている間に 入出力 エラーが発生しました。
[EOPNOTSUPP]
  ファイルシステムがファイルフラグをサポートしません。

関連項目

chflags(1), fflagstostr(3) [英語], strtofflags(3) [英語], init(8), mount_unionfs(8)

歴史

chflags() システムコールと fchflags() システムコールは BSD 4.4 ではじめて登場しました。

CHFLAGS (2) May 5, 2002

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

One of the advantages of using UNIX to teach an operating systems course is the sources and documentation will easily fit into a student's briefcase.
— John Lions