代码示例_文件IO_lseek

lseek


 

lseek.c

复制代码
 1 #include <sys/types.h>
 2 #include <sys/stat.h>
 3 #include <fcntl.h>
 4 #include <unistd.h>
 5 #include <stdio.h>
 6 #include <string.h>
 7 #include <stdlib.h>
 8 
 9 int main(void)
10 {
11 
12     char buf1[100];
13     char buf2[100];
14 
15     while(1){
16 
17         // 打开/创建
18         int fd = open("./1.text",O_RDWR|O_CREAT,S_IRUSR|S_IWUSR); //这个参数很重要
19         if(fd<0){
20             perror("open failed");
21             exit(1);
22         }
23 
24         //
25         bzero(buf1,100);
26         printf("write :\t");
27         fgets(buf1,100,stdin);
28         if(  write(fd,buf1,strlen(buf1))<0  ){
29             perror("write failed");
30             exit(1);
31         }
32 
33         // 关一下,要不然无法读出数据
34         close(fd);
35 
36 
37         // 打开(读模式)    
38         fd = open("./1.text",O_RDWR);
39 
40         //
41 
42         lseek(fd,1,SEEK_SET); //控制文件读写位置(头部正偏一个字节!) 重点!!
43         
44         bzero(buf2,100);
45         if(  read(fd,buf2,strlen(buf1))<0  ){
46             perror("read failed");
47             exit(1);
48         }
49 
50         printf("read  :\t%s\n",buf2);
51 
52         // 关闭
53         close(fd);
54 
55         if(strncmp(buf2,"quit",4)==0)
56             break;
57     }
58 
59 
60     return 0 ;
61 }
复制代码

 

 

测试:


 

 

 

success !

 

posted @   panda_w  阅读(336)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示