3

最終的には、オンラインで例を調べなくても、関数の使用方法を知りたいと思っています。

たとえば、次のようman 2 mkfifoに表示されます。

NAME
     mkfifo -- make a fifo file

SYNOPSIS
     #include <sys/types.h>
     #include <sys/stat.h>

     int
     mkfifo(const char *path, mode_t mode);

DESCRIPTION
     Mkfifo() creates a new fifo file with name path.  The access permissions are specified by mode and restricted by the umask(2) of the calling process.

     The fifo's owner ID is set to the process's effective user ID.  The fifo's group ID is set to that of the parent directory in which it is created.

const char *pathかなり自明であり、その引数で mkfifo 関数を呼び出すのに問題はありませんが、私の懸念は mode_t 引数です。man ページには、このモードの目的に関する簡単な説明がありますが、それを使用して関数を呼び出すための使用方法については説明されていません。

そのような議論を理解するためにマニュアルページをナビゲートする方法はありますか?

やってみましたがman mode_tman mode何も出てきませんでした。

4

2 に答える 2

1

man ページでは、次のようにモード フラグを使用する他の場所にある程度精通していることを前提としています。

通常の方法で、プロセスの umask によって変更されます。作成されたファイルのパーミッションは (mode & ~umask) です。

ただし、「参照」セクションの各ページを参照すると、次のようになります。

関連項目

mkfifo(1)、close(2)、open(2)、read(2)、stat(2)、umask(2)、write(2)、mkfifoat(3)、fifo(7)

最終的に open(2) にたどり着き、使用できるモードの完全なリストが表示されます。つまり、アクセスした man ページには次のものがman 2 open含まれています (フラグの説明中)。

 O_CREAT ファイルが存在しない場合は作成されます。ファイルの所有者 (ユーザー ID) は、プロセスの実効ユーザー ID に設定されます。グループの所有権 (グループ ID) は、プロセスの有効なグループ ID または親ディレクトリのグループ ID のいずれかに設定されます (ファイル システムのタイプとマウント オプション、および親ディレクトリのモードに応じて、マウント オプション bsdgroups を参照してください)。および mount(8) で説明されている sysvgroups)。

mode は、新しいファイルが作成された場合に使用するパーミッションを指定します。フラグで O_CREAT が指定されている場合、この引数を指定する必要があります。O_CREAT が指定されていない場合、モードは無視されます。有効なパーミッションは、通常の方法でプロセスの umask によって変更されます。作成されたファイルのパーミッションは (mode & ~umask) です。このモードは、新しく作成されたファイルの将来のアクセスにのみ適用されることに注意してください。読み取り専用ファイルを作成する open() 呼び出しは、読み取り/書き込みファイル記述子を返す可能性があります。

次の記号定数がモードに提供されます: …</p>

役立つと思われるもう 1 つの方法は、マニュアル ページで指定されているインクルードに関する情報を検索することです。たとえば、sys/types.hまたはをグーグルで検索すると、次のようsys/stat.hになります。

これは、「オンラインで例を調べる」必要を排除するものではないことを理解しています. 一部のシステムには、ヘッダーの man ページが含まれている場合がありますが、含まれていない場合もあります。

于 2013-09-19T19:57:23.700 に答える
1

あなたが求めたものはすでに存在します。それは commandinfoです。試す:

info mkfifo

次のようなものが得られます。

 -- Function: int mkfifo (const char *FILENAME, mode_t MODE)
     The `mkfifo' function makes a FIFO special file with name
     FILENAME.  The MODE argument is used to set the file's
     permissions; see *note Setting Permissions::.

カーソルをビットの上に移動して*note Setting Permissions::.ENTER を押すとumask、ファイルのアクセス許可のかなり詳細な説明が記載されたページに移動します。

また、info特定のトピックのマニュアル ページしか利用できない場合でも、マニュアル ページを読むことができます。つまり、二度と使用する必要はありませんman

于 2013-09-19T20:16:30.640 に答える