一个简单的文件读写实例

《朱老师物联网大讲堂》学习笔记

学习地址:www.zhulaoshi.org

 

下面是朱老师上课时候讲解的代码,

其实呢,这个代码是很简单的,甚至让人觉得没什么好讲的,

但是本着0基础,

还有讲解这个代码的同时,也是在教你如何去养成一个写程序的良好习惯,比如如何使用man手册,以及其间的一些细节,

 

#include<stdio.h>

int main( int argc, char *argv[] )
{
 int fd; // fd is file descriptor
 int ret = -1 ;
 char buf[100] = { 0 };
 char writebuf[20] = "i love linux";

 fd = open("a.txt", O_RDWR );

 if( -1 == fd )
 {
  printf("file open error\n");
 }    
 else
 {
  printf("file open success, fd = %d\n", fd );
 }

 ret = write( fd, writebuf, strlen( writebuf ));
 if( red < 0 )
 {
  printf(" write fail\n");
 }
 else
 {
  printf("write %d \n", ret );
 }
 

 ret = read( fd, buf, 20 );

 if( red < 0 )
 {
  printf(" read fail\n" );
 } 
 else
 {
  printf("in fact read is %d byte", ret);
  printf(" read is [%s]\n", buf );
 }
  

 close( fd );
 
}

man 1 xxx 查linux shell命令,
man 2 xxx 查linux api,
man 3 xxx 查库函数,
弄不清楚是哪个,就不要加数字!

注意此处read函数中的buf类型是void,
注意此处,write的内容,read并没有得到,

 

 ps:这个代码,头文件,缺少,

然后这个程序运行后,和你想的结果不一样,

这是第一次运行后的结果,

你应该会好奇,为什么,读出是 0 byte,

答案是,你在这次文件操作中,只打开了一次文件,对应的就是一个文件指针,前面write使得指针已经被移动到后面了,所以后面read,就是“没有内容”。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值