==C 低水準ファイルアクセス==
[[Programming C]]
====file descriptor====
====write====
#include<<unistd.h>>
ssize_t write(int filedes, const void *buf, size_t nbytes);
*global変数errnoにエラーの内容を示す値が設定される。
#include <<unistd.h> >
int main()
}
====read====
#include <<unistd.h>>
ssize_t read(int filedes, void *buf, size_t nbytes);
*errorが発生した場合、-1を返す
#include <<unistd.h>>
int main()
====open====
#include <<fcntl.h>> #include <<sys/types.h>> #include <<sys/stat.h>>
int open(const char *path, int oflags);
int open(const char *path, int oflags, mode_t mode);
|}
#include <<fcntl.h>> #include <<sys/types.h>> #include <<sys/stat.h>>
int main() {
====close====
#include <<unistd.h>>
int close(int filedes);
====ioctl====
#include <<unistd.h>>
int ioctl(int filedes, int cmd, ...);
ioctlは何でも屋的な関数で、device と その descriptor の振る舞いを制御したり、device が提供する service を設定するための interface を提供する。
===file 操作のためのその他の system call===
====lseek====
#include <<unistd.h>> #include <<sys/types.h>>
out_t lseek(int filedes, off_t offset, int whence);
**SEEK_END offset はfileの末尾から相対
#include <<unistd.h>> #include <<sys/stat.h>> #include <<sys/types.h>> #include <<fcntl.h>>
int main()
====fstat, stat, lstat====
#include <<unistd.h>> #include <<sys/stat.h>> #include <<sys/types.h>>
int fstat(int filedes, struct stat *buf);
int stat(const char *path, struct stat *buf);
====dup, dup2====
#include <<unistd.h>>
int dup(int filedes);
int dup2(int filedes, int filedis2);