open函数的定义和参数。
#include<sys/types.h>
#include<sys/stat.h>
#include<fchl.h>
int open (const char *pathname, int flags);
int open (const char *pathname, int flags,mode_t mode);
使用open函数需要引入的三个头文件。
#include<sys/types.h>
#include<sys/stat.h>
#include<fchtl.h>
一.函数 打开文件:open
int open (const char *pathname, int flags);
//pathname:指向文件的路径
//flags:文件的权限。
// O_PDONLY 只读打开。
// O_WRONLY 只写打开。
// O_RDWR 读写打开。
//上面这三个权限只能指定一个,下面的可以追加。
//O_CREAT 若文件不存在使用他来创建,需要说明mode权限。
//O_EXCL 如果文件存在,则打开失败。O_A
//O_APPEND 接着尾巴继续写,不加的话会覆盖掉之前位置的东西
//O_TRUNC 把原本所有的内容给他干掉,长度截短0,重新写入
示例1
1.用读写的方式打开,file文件夹。
int fd;
fd = open ("./file",O_RDWR);
创建文件2
使用creat函数
creat(const char* pathname, mode_t mode);
//mode 权限
// S_IRUSR可读,1
// S_IWUSR可写,2
// S_IXUSR可执行,4
// S_IRWXR可读、写、执行)7(也可以用数字代替,如0777)
//返回值:文件描述符,值为一个整数,发生错误时返回-1
示例
创建了一个名为陈哥陈哥的可读可写可执行文件。
int fd;
fd = creat("./chengechenge",IRWXR);
二.创建文件
int open (const char *pathname, int flags, mode_t mode);
//mode:权限
//pathname:指向文件的路径
//flags:文件的权限。
示例2
创建一个名为file1的可读写文件。
int fd;
fd = open("./file1",O_RDWR|O_CREAT,0600);
三.写入文件 write
1.引入头文件
#include<unistd.h>
2.write的定义和参数。
size_t write (int fd,const void *buf,size_t count)
//fd:文件描述符
//buf:字符串,你要写进去的东西
//coun:大小/字节,可以用sizeof/strlen计算。
示例3
定义buf内容,使用strlen计算字符串长度。
char *buf = "chenge is hangsome boy";
write (fd,buf,strlen(buf));
四.关闭 文件close
close(int fd);
//fd:文件描述符
五.读取文件
read函数
ssize_t read(int fd, void *buf, size_t count);//读取成功返回字节数,读取失败返回-1
示例代码
char *readbuf;
readbuf = (char*)malloc(sizeof(char)*n_write);
int n_read = read (fd,readbuf,nweite);
六.移动光标
off_t lseek (int fd, off_t offset, int whence);
//offset 偏移值 对whence的偏移值
//whence 位置
//SEEK_SET 文件的开头
//SEEK_CUR 文件的当前位置
//SEEK_END 文件的末尾
示例1
让光标指向文件的开头。
lseek (fd,0,SEEK_SET);