5.文件光标移动操作.a

光标移动使用lseek函数:

        1.lseek函数包含的头文件:

                             

#include <sys/types.h>
#include <unistd.h>

       

        2.lseek函数原型:

         


       off_t lseek(int fd, off_t offset, int whence);

         3.SEEK_SET:指向文件头部

         4.SEEK_END:指向文件尾部

         5.SEEK_CUR:指向文件当前位置

 

光标移到代码:

#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 = "zhongzifeng hen shuai !";
       fd = open("./file1",O_RDWR);  //打开当前路径的文件file1

       if(fd == -1)   //表示打开失败
       {
          printf("open file1 failed\n");

          fd = open("./file1",O_RDWR|O_CREAT,0600);//O_CREAT表示文件不存在时创>建文件

          if(fd > 0)
          {
              printf("create file1 success !\n");
          }
       }

       printf("open success file1 : 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 byte to file1\n",n_write);
       }

       //ssize_t read(int fd, void *buf, size_t count);

       char* readBuf;

       readBuf = (char *)malloc(sizeof(char)*n_write+1);

       //off_t lseek(int fd, off_t offset, int whence);
       lseek(fd,0,SEEK_SET);
       //lseek(fd,-23,SEEK_CUR);

       int n_read = read(fd,readBuf,n_write);

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

       close(fd);

       return 0;
}

 运行的结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值