文件的读取操作(以重新打开和关闭文件的形式进行读取)

文件的读取操作——(一)
一、读取操作的API:read
查看man手册 man 2 read来查看信息。

在这里插入图片描述
fd:文件描述符(文件的操作)
buf:缓冲区(为无类型的指针)
count:写入文件fd里面去表示字节大小

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

int   main()
{
     int   fd;
     char  *buf="wo hen shuai";//写入的内容

	 fd=open("./file1",O_RDWR);
	 //打开文件,以可读可写的形式打开

	 if(fd==-1)//判断文件是否存在
   {
      printf("open file1 failed\n");

	  fd=open("./file1",O_RDWR|O_CREAT,0600);
      //打开文件,以可读可写可创建的形式打开
      
             if(fd>0)
	      {
	        printf("create file1  success\n");
	      }
   }

	 printf("open success:  fd=%d\n",fd);
      

	 //ssize_t write(int fd, const void *buf, size_t count);
      int n_write =write(fd,buf,strlen(buf));
   /*往文件里写入内容*/

        if(n_write!=-1)    
   {
     printf("write %d btye tofile\n",n_write);    
   }

     close (fd);/*关闭文件*/
     fd=open("./file1",O_RDWR);/*打开文件*/
     /*关闭文件之后再打开,
     使得光标从文件的尾巴移到文件的头*/  


	char  *readbuf;
	readbuf = (char*)malloc(sizeof(char)*n_write+1);
    /*读取文件*/
    
 // ssize_t read(int fd, void *buf, size_t count);
    int  n_read=read(fd,readbuf,n_write);
    /*读取的大小为n_write的大小(即写入的大小)*/

	printf("read %d,context:%s\n",n_read,readbuf);

	close(fd);

    return 0;
}

程序运行结果:
在这里插入图片描述
文件里的内容
在这里插入图片描述
这种方式的读取很土,再接下来的文章中要引用新的方式lseek进行读取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值