「C ファイルとディレクトリ」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==C ファイルとディレクトリ== [Programming C] 標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行…」) |
|||
(同じ利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
− | ==C ファイルとディレクトリ== | + | ==[[C ファイルとディレクトリ]]== |
− | [Programming C] | + | [[Programming C]] | |
標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。 | 標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。 | ||
===chmod=== | ===chmod=== | ||
− | #include | + | #include <sys/stat.h> |
int chmod(const char *path, mode_t mode); | int chmod(const char *path, mode_t mode); | ||
*path で指定された permission を mode に変更する。 | *path で指定された permission を mode に変更する。 | ||
− | *[C 低水準ファイルアクセス] | + | *[[C 低水準ファイルアクセス|open]]と同様必要なpermissionの論理和を指定。 |
===chown=== | ===chown=== | ||
− | #include | + | #include <unistd.h> |
int chown(const char *path, uid_t owner, gid_t group); | int chown(const char *path, uid_t owner, gid_t group); | ||
super userは、chown system call を使って、file の owner を変更することができる。 | super userは、chown system call を使って、file の owner を変更することができる。 | ||
===unlink、link、symlink=== | ===unlink、link、symlink=== | ||
− | #include | + | #include <unistd.h> |
int unlink(const char *path); | int unlink(const char *path); | ||
int link(const char *path1, const char *path2); | int link(const char *path1, const char *path2); | ||
28行目: | 28行目: | ||
===mkdir、rmdir=== | ===mkdir、rmdir=== | ||
− | #include | + | #include <sys/stat.h> |
int mkdir(const char *path, mode_t mode); | int mkdir(const char *path, mode_t mode); | ||
*directory を作成する mkdir system call は mkdir program に相当する。 | *directory を作成する mkdir system call は mkdir program に相当する。 | ||
*permission は、parameter mode で指定する。 | *permission は、parameter mode で指定する。 | ||
− | *[C 低水準ファイルアクセス] | + | *[[C 低水準ファイルアクセス|open]]と同様必要なpermissionの論理和を指定。 |
− | #include | + | #include <unistd.h> |
int rmdir(const char *path); | int rmdir(const char *path); | ||
41行目: | 41行目: | ||
===chdir、getcwd=== | ===chdir、getcwd=== | ||
− | #include | + | #include <unistd.h> |
int chdir(const char *path); | int chdir(const char *path); | ||
*directoryを移動 | *directoryを移動 | ||
− | #include | + | #include <unistd.h> |
char *getcwd(char *buf, size_t size); | char *getcwd(char *buf, size_t size); | ||
*現在のdirectory 名をbufに書き込む。 | *現在のdirectory 名をbufに書き込む。 |
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 矢木浩人