naobe @ ウィキ
Posixシステムコール
最終更新:
naobe
-
view
Unix/Linuxに戻る
インタフェース
| インタフェース | 引数 | 説明 |
|---|---|---|
| sighandler_t signal(int signum, sighandler_t sighandler) | signum: シグナル番号、sighandler: シグナルハンドラ | シグナル番号で指定したシグナルにシグナルハンドラを設定する。シグナルハンドラには、SIG_IGN(シグナルを無視), SIG_DFL(デフォルトのシグナル動作)がシステムで用意されている。自作のハンドラを登録することも可能。 |
| int fstat(int filedes, struct stat *buf) | filedes:ファイルデスクリプタ、buf: ファイルの状態 | ファイルデスクリプタを指定して、ファイルの状態を取得する。成功すると0を失敗すると-1を返す。 |
| int open(const char *pathname, int flags, mode_t mode) | pathname: パス名, flags: 以下参照, mode: 以下参照, 戻り値: ファイルディスクリプタ | 指定したfalfs, modeでpathnameのファイルを開く |
| pid_t getpid(void) | 現在のプロセスIDを返す。getppid(void)は親プロセスのプロセスIDを返す。 | |
open flags
| 項目 | 説明 |
|---|---|
| O_RDONLY | 読み込み専用 |
| O_WRONLY | 書き込み専用 |
| O_RDWR | 読み書き用 |
| O_APPEND | ファイルを追加モードで開く |
| O_ASYNC | シグナル駆動 I/O (signal-driven I/O) を有効にする。入出力が可能になった時にシグナルを生成する。端末、疑似端末、ソケットのみ可能。 |
| O_CREAT | フ ァイルが存在しなかった場合は作成 (create) する。 |
| O_EXCL | O_CREAT と一緒に使用された場合、ファイルが既に存在した場合はエラーとなる。これを使ってロック機構を作成しようとした場合、race conditionを含む(使わないのが良い)。対応するためにはlink()を使ってリンクを作成する。 |
| O_TRUNC | ファイルが既に存在し、通常ファイルであり、書き込み可モードでオープンされている (つ まり、O_RDWR または O_WRONLY の) 場合、長さ 0 に切り詰め (truncate) られる。 |
open mode
| 項目 | 説明 |
|---|---|
| S_IRWXU | 00700 ユーザー (ファイルの所有者) に読み込み、書き込み、実行の許可がある。 |
| S_IRUSR | 00400 ユーザーに読み込みの許可がある。 |
| S_IWUSR | 00200 ユーザーに書き込みの許可がある。 |
| S_IXUSR | 00100 ユーザーに実行の許可がある。 |
| S_IRWXG | 00070 グループに読み込み、書き込み、実行の許可がある。 |
| S_IRGRP | 00040 グループに読み込みの許可がある。 |
| S_IWGRP | 00020 グループに書き込みの許可がある。 |
| S_IXGRP | 00010 グループに実行の許可がある。 |
| S_IRWXO | 00007 他人 (others) に読み込み、書き込み、実行の許可がある。 |
| S_IROTH | 00004 他人に読み込みの許可がある。 |
| S_IWOTH | 00002 他人に書き込みの許可がある。 |
| S_IXOTH | 00001 他人に実行の許可がある。 |
| S_ISUID | 実行時にファイル所有者のユーザIDをセット |
statのs_mode
| 項目 | 説明 |
|---|---|
| S_IFMT | 0170000 ファイル種別を示すビット領域を表すビットマスク |
| S_IFSOCK | 0140000 ソケット |
| S_IFLNK | 0120000 シンボリック・リンク |
| S_IFREG | 0100000 通常のファイル |
