日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
LINK(2) FreeBSD システムコールマニュアル LINK(2) 名称 link, linkat -- ハードファイルリンクを作成する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> int link(const char *name1, const char *name2); int linkat(int fd1, const char *name1, int fd2, const char *name2, int flag); 解説 link() システムコールは、name1 によって指された基本的なオブジェクトの属性 がある指定されたディレクトリエントリ (ハードリンク) name2 を不可分に作成 します。リンクが成功するなら: 基本的なオブジェクトのリンクカウントが、増 加されます。name1 と name2 は、基本的なオブジェクトへのアクセスとアクセス 権を等しく共有します。 name1 が削除されるなら、ファイル name2 は、削除されず、基本的なオブジェク トのリンクカウントは、減少されます。 name1 引数によって指されるオブジェクトは、ハードリンクが成功するように存 在しなければならず、name1 と name2 の両方は、同じファイルシステムになけれ ばなりません。name1 引数は、ディレクトリであってはなりません。 linkat() システムコールは、name1 または name2 または両方が相対的なパスで ある場合を除いて、link と同等です。この場合に、相対的なパス name1 は、現 在の作業ディレクトリの代わりに、ファイル記述子 fd1 に関連するディレクトリ に相対的と解釈され、name2 とファイル記述子 fd2 も同様です。 flag のための値は、<fcntl.h> で定義される、次のリストからフラグのビット単 位の包括的な論理和 (OR) によって構成されます: AT_SYMLINK_FOLLOW name1 がシンボリックリンクを指定するなら、シンボリックリンクの ターゲットのための新しいリンクが、作成されます。 linkat() が fd1 または fd2 パラメータの特別な値 AT_FDCWD を渡されるなら、 現在の作業ディレクトリは、個別の name 引数のために使用されます。fd1 と fd2 の両方に、値 AT_FDCWD があるなら、振る舞いは、link() への呼び出しと同 一です。flag が AT_SYMLINK_FOLLOW フラグを含んでいないなら、name1 がシン ボリックリンクを指定するなら、新しいリンクは、そのターゲットではなく、シ ンボリックリンク name1 のために作成されます。 戻り値 関数 link() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が 返され、グローバル変数 errno にエラーを示す値が設定されます。 エラー link() システムコールは、次の場合に失敗し、リンクは、作成されません: [ENOTDIR] いずれかのパス接頭辞の構成要素がディレクトリではありま せん。 [ENAMETOOLONG] パス名の構成要素が 255 文字を越えているか、または、全 体のパス名が 1023 文字を越えました。 [ENOENT] いずれかのパス接頭辞の構成要素が存在しません。 [EOPNOTSUPP] name1 によって指定されるファイルを含んでいるファイルシ ステムが、リンクをサポートしていません。 [EMLINK] name1 によって指定されるファイルのリンクカウントが、 32767 を越えています。 [EACCES] いずれかのパス接頭辞の構成要素が検索パーミッションを拒 否しています。 [EACCES] 要求されたリンクが、書き込みパーミッションを拒否する モードでディレクトリの書き込みを必要としています。 [ELOOP] パス名の変換の 1 つであまりにも多くのシンボリックリン クに遭遇しました。 [ENOENT] name1 によって指定されたファイルが、存在しません。 [EEXIST] name2 によって指定されたリンクが、存在しています。 [EPERM] name1 によって指定されたファイルが、ディレクトリです。 [EPERM] name1 によって指定されたファイルに、不変または追加専用 フラグがあります、詳細については、chflags(2) マニュア ルページを参照してください。 [EPERM] name2 によって指定されたファイルの親ディレクトリに、不 変フラグの設定があります。 [EXDEV] name2 によって指定されたリンクと name1 によって指定さ れたファイルが、異なったファイルシステムにあます。 [ENOSPC] ディレクトリを含んでいるファイルシステムに空間の残りが ないので、新しいリンクのためのエントリが置かれている ディレクトリが、拡張できません。 [EDQUOT] ディレクトリを含んでいるファイルシステムのディスクブ ロックのユーザのクォータが使い果たされたので、新しいリ ンクのためのエントリが置かれているディレクトリが、拡張 できません。 [EIO] ディレクトリエントリを作成するファイルシステムから読み 込む、または書き込む間に、I/O エラーが起こりました。 [EROFS] 要求されたリンクが、読み込み専用のファイルシステムの ディレクトリを書き込むことを必要とします。 [EFAULT] 指定されたパス名の 1 つが、プロセスの割り付けられたア ドレス空間の外側です。 link() によって返されたエラーに加えて、linkat() システムコールは、次の場 合に失敗します: [EBADF] name1 または name2 引数が、絶対的なパスを指定していま せん、そして fd1 または fd2 引数が、それぞれ、AT_FDCWD でも、検索のためにオープンされた有効なファイル記述子で もありません。 [EINVAL] flag 引数の値が、有効ではありません。 [ENOTDIR] name1 または name2 引数が、絶対的なパスではなく、fd1 または fd2 が、それぞれ、AT_FDCWD でも、ディレクトリと 関連したファイル記述子でもありません。 関連項目 chflags(2), readlink(2), symlink(2), unlink(2) 規格 link() システムコールは、ISO/IEC 9945-1:1990 (``POSIX.1'') に適合するはず です。linkat() システムコールは、The Open Group Extended API Set 2 仕様に 従っています。 歴史 link() 関数は、Version 7 AT&T UNIX で登場しました。linkat() システムコー ルは、FreeBSD 8.0 で登場しました。 link() システムコールによって、スーパユーザは、伝統的に、ファイルシステム の一貫性を破損するディレクトリにリンクすることができます。この実装は、も はやそれを許可しません。 FreeBSD 11.4 April 10, 2008 FreeBSD 11.4