当前位置:网站首页>Remember the bug encountered in reading and writing a file
Remember the bug encountered in reading and writing a file
2021-08-08 00:55:01 【Look, the future】
Code 1 :
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
char* buf = new char[8]; //can't alloc 1024?
int fd = open("./fileIO.txt", O_CREAT|O_RDWR);
if(fd<0){
cout<<"open( file failed!)"<<endl;
}
return 0;
}
result , The created file has dangerous permissions ,S and T、
Code 2:
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
char* buf = new char[8]; //can't alloc 1024?
int fd = open("./fileIO.txt", O_CREAT|O_RDWR);
if(fd<0){
cout<<"open( file failed!)"<<endl;
}
int m = write(fd,"test\n",5);
cout<<m<<endl;
int n = read(fd,buf,m);
cout<<n<<endl;
printf("%s\n",buf);
close(fd);
return 0;
}
result :m Valuable ,n by 0,buf It's definitely empty .
later , I don't think it will be m yes size_t Why , Only a dead horse can be a living horse doctor .
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
char* buf = new char[8]; //can't alloc 1024?
int fd = open("./fileIO.txt", O_CREAT|O_RDWR);
if(fd<0){
cout<<"open( file failed!)"<<endl;
}
int m = write(fd,"test\n",5);
cout<<m<<endl;
int n = read(fd,buf,5);
cout<<n<<endl;
printf("%s\n",buf);
close(fd);
return 0;
}
Hey ,m/n It's all worth it , But still buf Nothing 、
sizeof(buf) There are also lengths , But there's nothing .
Finally realized that , When opening the file to write , It's a heavy head cover , The contents of the file have been overwritten , But the new content hasn't been saved yet , The file operation handle is in write, So you can't read the content .
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
char* buf = new char[8]; //can't alloc 1024?
int fd = open("./fileIO.txt", O_CREAT|O_RDWR);
if(fd<0){
cout<<"open( file failed!)"<<endl;
}
int m = write(fd,"test\n",5);
cout<<m<<endl;
close(fd);
fd = open("./fileIO.txt", O_CREAT|O_RDWR);
int n = read(fd,buf,5);
cout<<n<<endl;
printf("%s\n",buf);
close(fd);
return 0;
}
So what? ?
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
char* buf = new char[8]; //can't alloc 1024?
fd = open("./fileIO.txt", O_CREAT|O_RDWR|O_APPEND);
if(fd<0){
cout<<"open( file failed!)"<<endl;
}
int m = write(fd,"test\n",5);
int n = read(fd,buf,5);
cout<<n<<endl;
printf("%s\n",buf);
close(fd);
return 0;
}
Not easy to use , That's the same sentence , I haven't saved it yet .
From this record , You can introduce a file reading and writing process to :
Open file , Get handle ;
Write the contents of the file to the buffer , At the moment, the inside of the file is empty ;
Close file , Write the contents of the new file in the buffer back to .
The next operation can be carried out .
therefore , Remember to turn it off .
also , When reading , Remember to wrap , Refresh buffer .
版权声明
本文为[Look, the future]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/08/20210808005426132m.html
边栏推荐
- Fourth in the world! Wang Sicong installed a server "readily". Netizen: trench is inhuman
- [Tencent classroom] creator zero foundation immortal practice is online!
- 跟着华为,学数字化转型(3):模式创新
- 记一次接口慢查排查
- Follow Huawei and learn digital transformation (3): mode innovation
- Record an interface slow check and troubleshooting
- @Autowired的这些骚操作,你都知道吗?
- ss -h命令
- @Do you know all these operations of Autowired?
- 使用Yolo v5进行目标检测
猜你喜欢
-
Yazid的新生舞会(线段树)
-
当creator遇上protobufjs|孕育
-
Identify and stop the process that‘s listening on port 8080 or configure this application to listen
-
为什么要推荐大家学习字节码?
-
揭秘!价值百万的像素填色解决方案,想开发绘本应用的有福了!
-
[PyTroch系列-11]:PyTorch基础 - 张量Tensor元素的排序
-
[PyTroch系列-12]:PyTorch基础 - 张量Tensor线性运算(点乘、叉乘)
-
【环境篇】第 3 节 • Navicat 环境安装
-
预训练语言模型的前世今生 - 从Word Embedding到BERT
-
讲道理,只要你是一个爱折腾的程序员,毕业找工作真的不需要再花钱培训!
随机推荐
- 华南理工 | 基于生成式的低比特无数据量化
- 微信小程序授权位置和用户信息权限(防止用户禁止后无法使用位置信息)
- 一行代码快速实现今日头条 网易新闻焦点图自动循环轮播效果
- 因果涌现:数学理论揭示整体怎样大于部分之和
- 年收入百万美元AI科学家的烦恼
- API《为什么奥运会以五色环为标志?》数据源接口
- 用一张草图创建GAN模型,新手也能玩转,朱俊彦团队新研究入选ICCV 2021
- UIUC | 用于语言模型的课程学习
- SS - H command
- Target detection using Yolo V5
- Yazid's freshman ball (thread tree)
- When creator meets protobufjs 𞓜
- 我敢肯定!你还没用过一款代码神器,只属于Creator的用户!
- 小程序页面跳转&&文章详情页的实现&&markdown格式转化为wxml显示在小程序页面里
- 49个项目管理过程ITTO整理(详细)
- 49个项目管理过程ITTO整理(详细-文字版)
- 只是想虐下春丽,一不小心撸了台游戏机...
- Cocos论坛九问九答
- Identify and stop the process that‘s listening on port 8080 or configure this application to listen
- 超详细的I/O多路复用概念、常用I/O模型、系统调用等介绍
- Why recommend learning bytecode?
- SAP Commerce Cloud UI 的用户会话管理
- 以太坊 交易 data字段 内容是什么
- SAP CRM Fiori 应用 My Note 里创建 Note 失败的一个原因分析
- 当creator遇上protobufjs|pbkiller填坑历险记
- Uncover the secret! Millions of pixel color filling solutions. Blessed are those who want to develop picture book applications!
- [pytroch series - 11]: pytorch basis - ordering of tensor tensor elements
- [pytroch series - 12]: pytorch basis tensor tensor linear operation (point multiplication, cross multiplication)
- [environment] section 3 • Navicat environment installation
- The past and present life of pre training language model - from word embedding to Bert
- Make sense, as long as you are a tossing programmer, you really don't need to spend money on training to find a job after graduation!
- South China Technology | low bit no data quantization based on generative
- Wechat applet authorizes location and user information permissions (to prevent users from being unable to use location information after prohibition)
- One line of code can quickly realize the automatic circular rotation effect of today's headlines and Netease News focus map
- Causal emergence: mathematical theory reveals how the whole is greater than the sum of parts
- The troubles of AI scientists with an annual income of millions of dollars
- API "why is the Olympic Games marked by five color rings?" Data source interface
- Create a GaN model with a sketch, which can be played by novices. The new research of Zhu Junyan's team was selected into iccv 2021
- UIUC | course learning for language model
- I'm sure! You haven't used a code artifact yet. It only belongs to creator users!