linux文件的IO函数

open函数:

作用:打开或者新建一个文件

原型: int open(const char*pathname,int flags);

            int open(const char*pathname,int flags,mode_t mode);

参数:

        pathname:路径

        flags:1-> O_RONLY 只读打开    2 -> O_WONLY只写打开  3-> O_RDWR 可读可写打开

                 这三个是必选一个。

O_APPEND 表示追加    O_CREAT 文件不存在则创建  这两个是可选

         mode:表示该文件的访问权限

O_EXCL->如果同时指定O_CREAT,并且文件已存在,则出错返回。

O_TRUNC->如果文件存在,将其长度截断为0字节 

函数返回值:

成功:返回一个最小且未被占用的文件描述符

失败:返回-1,并设置errno值

close函数:

 作用:关闭文件

函数原型:int close(int fd)

fd 文件描述符

函数返回值:

成功返回0

失败返回-1

read函数:

作用:从打开的设备或文件中读取数据

函数原型:ssize_t read(int fd,void*buf,size_t count)

fd->文件描述符   buf->读上来的数据保存在缓冲区buf中   count->buf缓冲区存放发最大字节数

函数返回值:

>0:读取到的字节数

=0:文件读取完毕

-1:出错,并设置errno

注意:

read 函数读普通文件,在读完文件后,若再次read,则read函数会立刻返回,表明read函数读普通文件是非阻塞的。

read函数读设备文件,socket,pipe文件都是阻塞的。

write函数: 

作用:向打开的设备或文件写数据

函数原型:ssize_t write(int fd,const void*buf,size_t count)

fd->文件描述符 buf->缓冲区,要写入文件或者设备的数据  count->buf中数据的实际长度

函数返回值:

成功:返回写入的字节数

失败:返回-1,并设置errno

lseek函数:

常用操作:

lseek(fd,0,SEEK_SET) 文件指针移动到头部

int len=lseek(fd,0,SEEK_CUR) 获取文件指针当前位置

int len =lseek(fd,0,SEEK_END) 获取文件长度

操作如下:

linux文件的IO函数_第1张图片

注意:再读文件之前要把文件关掉,因为在写文件的时候文件指针已经移动到末尾了

或者使用lseek(fd,0,SEEK_SET);

如果不想把文件名写死,可以改为:

这样就可以生成test文件:

你可能感兴趣的:(linux,java,前端)