!!!C ファイルとディレクトリ [Programming C] 標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。 !!chmod #include int chmod(const char *path, mode_t mode); *path で指定された permission を mode に変更する。 *[[open|C 低水準ファイルアクセス]]と同様必要なpermissionの論理和を指定。 !!chown #include int chown(const char *path, uid_t owner, gid_t group); super userは、chown system call を使って、file の owner を変更することができる。 !!unlink、link、symlink #include 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 int mkdir(const char *path, mode_t mode); *directory を作成する mkdir system call は mkdir program に相当する。 *permission は、parameter mode で指定する。 *[[open|C 低水準ファイルアクセス]]と同様必要なpermissionの論理和を指定。 #include int rmdir(const char *path); *rmdir system call は directory を削除。 !!chdir、getcwd #include int chdir(const char *path); *directoryを移動 #include char *getcwd(char *buf, size_t size); *現在のdirectory 名をbufに書き込む。 *directory名が、sizeを超える場合、NULLを返す。 ---- この本からの覚書。 {{amazon 4797327014}}