C言語 - 標準ライブラリ - fcntl.h

 クラウディア
1. 概要
2. open
3. close

1. 概要

 「fcntl」は、「File Control」の略でありましょうな。

2. open


#include <fcntl.h>

int open(const char *path, int flags, ...);
 「path」によって指定されるファイルを、引数「flags」によって指定されたように読取りまたは書込み (またはその両方) 用にオープンし、そのファイル記述子を呼び出し元プロセスに返します。  ファイルが存在しない場合にはファイルを作成するように、「flags」引数で指示できます (O_CREAT フラグを指定する)。  この場合、「open()」には 3 番目の引数「mode_t mode」が必要であり、ファイルはモード「mode」で作成され、プロセスの「umask」値によって修正されます。  「fopen」との違いは、戻り値です。  「fopen」では、「FILE」構造体が返されますが、「open」の場合、ファイルディスクリプタという整数値が返ります。  ファイルディスクリプタは、負でない整数で、ファイルオープンに失敗した場合は、「-1」が返ります。  「flag」は、以下の値を論理和で設定します。 O_RDONLY 読取り専用でオープン O_WRONLY 書込み専用でオープン O_RDWR 読取りと書込み用にオープン O_NONBLOCK オープンするときにブロックしない O_APPEND 書込みのたびに末尾に追加する O_CREAT ファイルが存在しない場合、作成する O_TRUNC サイズを 0 に切り捨てる O_EXCL 作成するファイルが既に存在した場合、エラーとする O_SHLOCK 共有ロックを不可分に取得する O_EXLOCK 排他的ロックを不可分に取得する O_DIRECT キャッシュの効果を無くすまたは減らす O_FSYNC 同期的に書き込む O_NOFOLLOW シンボリックリンクを辿らない

3. close


#include <libgen.h>

char *dirname(char *path);

char *basename(char *path);
 「dirname」は、「path」で示す、フルパスのファイル名より、ディレクトリの部分文字列を取得します。  「basename」は、「path」で示す、フルパスのファイル名より、ファイル名のみの部分文字列を取得します。