代码示例_文件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 !
Stay hungry, stay foolish
待续。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 让容器管理更轻松!