#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
pathname是C风格字符串表示的全路径名
flags指定文件应该如何打开,并包括逻辑"与"操作的一个或多个以下标志:
O_RDONLY |
以只读的方式打开文件 |
O_WRONLY |
以只写的方式打开文件 |
O_RDWR |
以读写的方式打开文件 |
O_APPEND |
以追加的方式打开文件 |
O_CREAT |
如果文件不存在,则创建一个文件 |
|
mode在新文件创建时指定其访问权限,当flags指定为O_CREAT时,必须提供该参数。当flags不为O_CREAT时,该参数被忽略。注意该访问权限只对将来对该新文件的访问有效。 |
O_EXEC |
如果使用了O_CREAT,并且文件已经存在,就会发生一个错误,如果没有使用O_CREAT,则行为未定义 |
O_TRUNC |
如果文件已经存在,并是一个普通文件,访问模式可写,,则删除其中内容 |
O_NOBLOCK |
以非阻塞的方式打开一个文件 |
O_ASYNC
O_CLOEXEC
O_DIRECT
O_DIRECTORY
O_LARGEFILE
O_NOATIME
O_NOCTTY
O_NOFOLLOW
O_NONBLOCK , O_NDELAY
O_SYNC
返回值:成功返回文件描述字,失败返回-1,并设置合适的errno
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
ssize_t write(int fd, const void *buf, size_t count);
参数:fd:文件描述符 buf:用来存放数据的目的缓冲区 count:要读取的字节数
返回值:-1 遇到错误
num_read 实际成功读取的字节数(不一定等于count),读后文件当前指针向后移动 count 个字节
注意:如果count为0,read()返回0,并没有其他结果,如果count大于SSIZE_MAX,结果将不确定。
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
#include <unistd.h>
#include <fcntl.h>
int fcntl(int fd, int cmd);
int fcntl(int fd, int cmd, long arg);
int fcntl(int fd, int cmd, struct flock *lock);
#include <unistd.h>
int close(int fd);
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char *path, struct stat *buf);
int fstat(int fd, struct stat *buf);
int lstat(const char *path, struct stat *buf);
#include <sys/types.h>
#include <sys/stat.h>
mode_t umask(mode_t mask);
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
posted on 2009-03-01 09:28
nichii 阅读(270)
评论(0) 编辑 收藏 引用