QQ
QQ
posts - 2,comments - 1,trackbacks - 0
#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)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理