トップ 一覧 ping 検索 ヘルプ RSS ログイン

C ファイルとディレクトリの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!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|C 低水準ファイルアクセス]]と同様必要な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|C 低水準ファイルアクセス]]と同様必要な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を返す。

----
この本からの覚書。
{{amazon 4797327014}}