作者:平凡岁月ss | 来源:互联网 | 2023-08-07 12:39
打开文件上限:ulimit&#160; 可以查看文件打开数目,同时 ulimit -n&#160; <数字>&#160; 可以修改文件打开数目。也就是说文件打开数目是有上限的,但是可以根据自己的使用情况来调整。
fread/fwrite/fopen/fclose&#160; 库函数
read/write/open/close&#160; 系统调用函数(Linux提供的比较底层的文件操作)
open
头文件:
#include
#include
#include 函数:
int open(const char *pathname, int flags); &#160;&#160;
int open(const char *pathname, int flags, mode_t mode);
参数列表:
pathname:路径,要打开或创建的目标文文件
flags:打开方式
flags分为:&#160;
O_RDONLY: 只读打开 &#160; &#160; &#160; &#160;
O_WRONLY: 只写打开 &#160; &#160; &#160; &#160;
O_RDWR &#160;: 读,写打开 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;
注:这三个常量,必须指定一个且只能指定一个 &#160; &#160; &#160; &#160;
O_CREAT : 若文件不存在,则创建它。需要使用mode选项,来指明新文件的访问权限 &#160; &#160; &#160; &#160;
O_APPEND: 追加写
返回值: &#160; &#160; &#160; &#160;
成功:新打开的文件描述符fd &#160; &#160; &#160; &#160;
失败:-1
#include
#include
#include
int main(){
//open的返回值:文件描述符
//FILE*中包含了文件描述符
int fd = open("./test.txt", O_RDONLY) //只读打开
printf("%d\n", fd);
return 0;
int fd = open("./test.txt", 0_RDONLY | O_CREAT)
//只读打开,文件存在就打开,文件不存在就自己创建
}
输出结果是:3
文件描述符表:
问:为什么是3?0,1,2去哪了?
答:0,1,2是标准输入,标准输出,标准错误,后序打开就接着打开。
read——文件描述符上执行读操作
函数:
ssize_t read(int fd, void *buf,size_t count)
size_t:表示有符号的长整形,不可为负数
ssize_t:表示可以为负数
char buf[1024]={0};
ssize_t=read(fd,buf,sizeof(buf) - 1); //返回值读到多少个字节
//fd开始读,读到buf中去,空间是sizeof(buf) - 1
返回值:成功读了多少字节&#160;
write——写文件
char buf[1024]="hehe";
write(fd,buf,strlen(buf));
//buf写到fd中,要写的长度strlen(buf)
返回值是:成功写了多少个字节。