「C ファイルとディレクトリ」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
− | ==C ファイルとディレクトリ== | + | ==[[C ファイルとディレクトリ]]== |
− | [[Programming C]] | + | [[Programming C]] | |
標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。 | 標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。 | ||
8行目: | 8行目: | ||
*path で指定された permission を mode に変更する。 | *path で指定された permission を mode に変更する。 | ||
− | *[C 低水準ファイルアクセス] | + | *[[C 低水準ファイルアクセス|open]]と同様必要なpermissionの論理和を指定。 |
===chown=== | ===chown=== | ||
33行目: | 33行目: | ||
*directory を作成する mkdir system call は mkdir program に相当する。 | *directory を作成する mkdir system call は mkdir program に相当する。 | ||
*permission は、parameter mode で指定する。 | *permission は、parameter mode で指定する。 | ||
− | *[C 低水準ファイルアクセス] | + | *[[C 低水準ファイルアクセス|open]]と同様必要なpermissionの論理和を指定。 |
#include <unistd.h> | #include <unistd.h> |
2020年2月16日 (日) 04:22時点における最新版
C ファイルとディレクトリ
Programming C | 標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。
chmod
#include <sys/stat.h> int chmod(const char *path, mode_t mode);
- path で指定された permission を mode に変更する。
- 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 で指定する。
- 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 矢木浩人