1.creat 建立文件或创建文件
函数原型:int creat(const *pathname,mode_t mode);
函数入参:pathname 要建立的文件路径字符串 “/home/hello.c”
mode 建立文件的权限
函数的返回值:成功返回文件描述符,出错返回-1
头文件:#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
2.open 打开或创建文件
函数原型:int open(const char * pathname,int flags);(打开文件)
int open(const char * pathname,int flags,mode_t mode);
函数参数:pathname 要建立的文件路径字符串 “/home/hello.c”
mode 创建新文件时使用,权限
flags 使用的标准:O_RDONLY 只读
O_WRONLY 只写
O_RDWR 读写
O_CREAT 不存在创建
O_TRUNC 文件存在并且是只写的形式打开,文件清零
O_EXCL 检查创建文件是否存在,不存在就创建,如果有就出错
O_APPEND 在文件尾继续写数据,不清空
O_NONBLOCK 以不可阻断的形式打开(非阻塞)
函数返回值:成功返回文件描述符,出错-1
头文件:#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
3.read 从打开的文件中读取数据
函数原型:ssize_t read(int fd, void *buf, size_t count);
函数的参数:fd open返回的文件描述符
buf 放置读出数据的缓冲区
count 要读取的字符数
返回值:实际读取的字符数 > 0
为0表示读到文件尾或无文件可读
-1出错
头文件:#include<unistd.h>
4.write 数据写入到已打开文件内
函数原型:ssize_t write(int fd, const void *buf, size_t count);
函数参数:fd 文件描述符
buf 放置要写入数据的缓冲区
count 写入字节数
返回值:失败 -1
成功 返回实际自恶如字节数
0 写到文件尾
大于零小于要写的字符数,实际写入
5.lseek 移动或定位文件的读写位置
原型:off_t lseek(int fd, off_t offset, int whence);
参数:fd 文件描述符
whence 文件的指针位置:
SEEK_SET 文件头
SEEK_CUR 当前位置
SEEK_END 文件尾
offset 相对whence的偏移量,向前移动为负,向后为正
返回值:文件指针到文件牵头的字节数
(求文件内容大小 int len;len = lseek(fd,0,SEEK_END);)
文件描述符:系统内核返回的一个整型的值 ; 标准输入 0;标准输出 1;出错 2 ;
main函数的两个参数:argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组,argc:表示命令行所带的参数的个数 ,argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址 int main(int argc,char *argv[ ]);