| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「C ファイルとディレクトリ」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==C ファイルとディレクトリ== [Programming C] 標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行…」)
 
1行目: 1行目:
 
==C ファイルとディレクトリ==
 
==C ファイルとディレクトリ==
[Programming C]
+
[[Programming C]]
 
標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。
 
標準libraryとsystem callを使えば、fileとdirectoryの作成、保守に必要なすべての作業を行うことができる。
  
 
===chmod===
 
===chmod===
  #include <sys/stat.h>
+
  #include &lt;sys/stat.h&gt;
 
  int chmod(const char *path, mode_t mode);
 
  int chmod(const char *path, mode_t mode);
  
11行目: 11行目:
  
 
===chown===
 
===chown===
  #include <unistd.h>
+
  #include &lt;unistd.h&gt;
 
  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 <unistd.h>
+
  #include &lt;unistd.h&gt;
 
  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 <sys/stat.h>
+
  #include &lt;sys/stat.h&gt;
 
  int mkdir(const char *path, mode_t mode);
 
  int mkdir(const char *path, mode_t mode);
  
35行目: 35行目:
 
*[C 低水準ファイルアクセス] [open]と同様必要なpermissionの論理和を指定。
 
*[C 低水準ファイルアクセス] [open]と同様必要なpermissionの論理和を指定。
  
  #include <unistd.h>
+
  #include &lt;unistd.h&gt;
 
  int rmdir(const char *path);
 
  int rmdir(const char *path);
  
41行目: 41行目:
  
 
===chdir、getcwd===
 
===chdir、getcwd===
  #include <unistd.h>
+
  #include &lt;unistd.h&gt;
 
  int chdir(const char *path);
 
  int chdir(const char *path);
 
*directoryを移動
 
*directoryを移動
  
  #include <unistd.h>
+
  #include &lt;unistd.h&gt;
 
  char *getcwd(char *buf, size_t size);
 
  char *getcwd(char *buf, size_t size);
 
*現在のdirectory 名をbufに書き込む。
 
*現在のdirectory 名をbufに書き込む。

2020年2月15日 (土) 08:01時点における版

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を返す。

この本からの覚書。