Linux中文件变成可以用两种方法:
Linux系统调用 :依赖Linux系统
C语言库函数
系统调用-创建
int creat(const char *filename, mode_t mode);
文件描述符
Linux系统中,所有打开的文件都对应一个[文件描述符]。
它的本质是一个[非负整数]。当打开一个文件时,该整数
由系统来分配。分配原则:没有用的最小整数。
系统调用-打开
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
flags:
O_RDONLY, O_WRONLY, ORDWR
O_APPEND, O_CREAT, O_NOBLOCK
O_CREAT 打开文件时文件不存在时创建文件,这时就用3个参数的open
系统调用-关闭
int close(fd);
系统调用-读
int read(int fd, const void *buf, size_t length);
功能:从文件描述符[fd所指向的文件]中[读取length个字节]
到[buf所指向的缓冲区]中,返回[实际读取的字节数]。
系统调用-写
int write(int fd, const void *buf, size_t length);
功能:把[length个字节的数据]从[buf指向的缓冲区]中写到文件
描述符[fd所指向的文件]中,返回值为实际写入的字节数(其实
也就是length,如果不是length那么写入失败)
系统调用-定位
off_t lseek(int fd, off_t offset, int whence);
功能:将文件读写指针相对whence移动offset个字节。操作成功
返回相对于文件头的位置。
whence:
SEET_SET:相对文件开头
SEET_CUR:当前位置
SEEk_END:相对文件末尾
offset可取[负值],表示向前移动。
注意:off_t类型是[带符号]的,在ilp32平台上是32个字节,
在ip64平台上是64个字节
系统调用-访问判断
int access(const char *pathname, int mode);
mode:要判断的访问权限。可以取下面的值或者它们的组合
R_OK:可读, W_OK:可写
X_OK:可执行 F_OK:存在
符合条件返回0, 否则返回-1
阅读(1948) | 评论(0) | 转发(0) |