「C ファイルとディレクトリ」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
==C ファイルとディレクトリ== | ==C ファイルとディレクトリ== | ||
− | [[Programming C]] | + | | [[Programming C]] |
標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。 | 標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。 | ||
2020年2月15日 (土) 08:30時点における版
C ファイルとディレクトリ
| Programming C
標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。
chmod
#include <sys/stat.h> int chmod(const char *path, mode_t mode);
- path で指定された permission を mode に変更する。
- [C 低水準ファイルアクセス] [open]と同様必要なpermissionの論理和を指定。
chown
#include <unistd.h> int chown(const char *path, uid_t owner, gid_t group);
super userは、chown system call を使って、file の owner を変更することができる。
unlink、link、symlink
#include <unistd.h> int unlink(const char *path); int link(const char *path1, const char *path2); int symlink(const char *path1, const char *path2);
- unlink system call は指定された file のdirectory entry を削除し、file の link count を decrement する。
- 成功すると、0を返し、失敗すると -1 を返す。
- link count が 0になり、どの process も file を open していなければ、file は削除される。
- fileへ新しいlinkを作成するには、link system call を使う。
- symbolic link は symlink を使って作成。
mkdir、rmdir
#include <sys/stat.h> int mkdir(const char *path, mode_t mode);
- directory を作成する mkdir system call は mkdir program に相当する。
- permission は、parameter mode で指定する。
- [C 低水準ファイルアクセス] [open]と同様必要なpermissionの論理和を指定。
#include <unistd.h> int rmdir(const char *path);
- rmdir system call は directory を削除。
chdir、getcwd
#include <unistd.h> int chdir(const char *path);
- directoryを移動
#include <unistd.h> char *getcwd(char *buf, size_t size);
- 現在のdirectory 名をbufに書き込む。
- directory名が、sizeを超える場合、NULLを返す。
この本からの覚書。
© 2006 矢木浩人