分类: LINUX
2009-02-11 22:47:46
STDIN_FILENO(0)、STDOUT_FILENO(1)、STDERR_FILENO(2)
#include
(1) int open(const char *pathname, int oflag, /*mode_t mode */);
若成功则返回文件描述符,若出错则返回-1
oflag: O_RDONLY、O_WRONLY、O_RDWR
O_APPEND、O_TRUNC、O_NOCTTY、O_NONBLOCK
O_CREAT(mode_t)、O_EXCL、O_SYNC
int creat(const char *pathname, mode_t mode);
若成功则返回文件描述符,若出错则返回-1
等效:open(pathname, O_WRONLY | O_CREAT | O_TRUNC, mode)
#include
(2) int close(int filedes);
若成功则返回0,若出错则返回-1
(3) off_t lseek(int fd, off_t offset, int whence)
若成功则返回新的文件偏移量,若出错则返回-1
Whence: SEEK_SET、SEEK_CUR、SEEK_END
(4) ssize_t read(int fd, void *buf, size_t nbytes);
若成功则返回读到的字节数,若已到文件结尾则返回0,若出错则返回-1
ssize_t 带符号,size_t 不带符号
(5) ssize_t write(int fd, const void *buf, size_t nbytes);
若成功则返回已写的字节数,若出错则返回-1
(6) int dup(int fd);
int dup2(int fds, int fds2);
若成功则返回新的文件描述符,若出错则返回-1
(7) int fsync(int fd);
int fdatasync(int fd);
void sync(void);
若成功则返回0,若出错则返回-1
(8) int fcntl(int fd, int cmd, …/*int arg*/); 改变打开文件的属性
若成功则依赖于cmd,若出错则返回-1
cmd: F_DUPFD、F_SETFD、F_GETFD、
F_GETFL、F_SETFL、
F_GETOWN、F_SETOWN
(9) #include
#include
int ioctl(int fd, int request, …);
若成功则返回其他值,若出错则返回-1