----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
声明:此文章为本人原创,未经本人允许,任何个人和单位不得将本文章用于商业用途
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一人之力,难免疏忽,若有错误,欢迎指正
1.open 函数 打开一个文件 在Linux下,任何事物都是文件()
int open(const char* path,int oflag,.../*mode_t mode*/ );
1.参数一:文件名,可以带路径 【 . 当前目录 ..父目录 / 表示根目录 ./ aaa 表示当前路径下的aaa文件 相对路径:从当前目录开始的路径 如 usr/bin
绝对路径 :从硬盘开始的路径 如 C:usr/bin/】
参数二 :打开文件的方式
O_RDONLY 只读打开(即打开的文件只能进行读操作)
O_WRONLY 只写打开(即打开的文件只能进行写操作)
O_RDWR 读写打开 (即打开的文件可进行读和写的操作)
O_EXEC 只执行打开(对于可执行文件来说,这个方式让他拥有可以执行的权限)
上述四个打开方式只能有一个,可以和下面的一起用,但要用 | 连接。下面的则是选填的
O_CREAT 用于创建文件(在打开的文件不存在时),但创建的时候要指定新文件的权限如0777,0664等
O_EXEL 用于检查创建文件时文件是否已经存在,与O_CREAT同时用,若存在就会报错
参数三:当文件被创建时就需要写参数三,若只是打开,就不需要写了
2.返回值 成功返回文件描述符,失败返回-1
2.creat 函数 创建一个新文件
int creat(const char* path, mode_t mode);
3.close函数 关闭文件
int close(int fd);
1. 但是当一个进程终止时,内核会自动关闭打开的文件,所以有时候不需要手动调用close关闭
2.返回值:成功返回0,失败返回-1
4.lseek 函数 设置文件的偏移量(即文件内的光标位置)
int lseek(int fd, off_t offset, int whence);
1.参数一:文件描述符(一般为open的返回值)
参数二:偏移的大小(即字节数)
参数三:从哪个位置开始偏移 【有三个位置
1.(SEEK_SET 文件开头的位置)
2.(SEEK_CUR 当前光标的位置)
3.(SEEK_END 文件末尾的位置)】
2.返回值 成功 :返回新的文件偏移量 (即从开头开始计算到当前光标位置的字节数) 可以用这点来计算文件大小(int filelen = lseek(fd, 0, SEEK_END);) 失败 :返回 -1
5.read 函数 从打开的文件中读取数据
int read(int fd, void *buf, size_t size);
1. 从fd中读取size 大小的数据到buf中去
2. 参数一:文件描述符 即获取数据的那个文件(一般是open函数的返回值)
参数二 : 缓冲区,要读入那块区域
参数三: 大小,要读入的数据的大小
3. 返回值 :成功; 返回读取的数据大小,如果读到了末尾,则返回0 (一是刚好读到文件末,二是size大于文件的大小)
失败: 返回-1
6.write 函数 从缓冲区中读取数据到一个文件中去
int write(int fd, void *buf, size_t size);
1. 从buf中获取size大小数据写到fd中去
2. 参数一:文件描述符 即写入的那个文件(一般是open函数的返回值)
参数二 : 缓冲区,表示从那块区域获取要写的数据(就是read函数的读入缓冲区)
参数三: 大小,要写入的数据的大小
3. 返回值 :成功; 返回已经写入的数据大小
失败: 返回-1
------------------------------------------------------------------------------------------------------
一人之力,难免疏忽,若有错误,欢迎指正
------------------------------------------------------------------------------------------------------