在Ubuntu中时使用read函数读取write函数写入到文件的数据时,发现读取到的内容为空,之后查看read函数的返回值发现也为空

经过思考后发送是在使用write函数之后,文件内部的文件指针指向文件结尾,再调用read函数时就无法获取文件内容了

解决方法:使用lseek函数

头文件:

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

函数原型:

off_t lseek(int fd, off_t offset, int whence);
  • 参数1:文件描述符
  • 参数2:文件指针相对于参数3的偏移位置
  • 参数3:指针位置,常用SEEK_SET(文件指针开始),SEEK_CUR(文件指针当前位置) ,SEEK_END为文件指针尾

lseek函数示例:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>int main()
{int fd = 0, count = 0;char *file = "/home/linuxsystemcode/file/1.txt";char *buf = "Hello world!\n";fd = open(file,O_RDWR);if(fd < 0)printf("File open failed!!!\n");if((count = write(fd,buf,strlen(buf))) < 0)printf("write failed!!!\n");elseprintf("write success\t The count is %d\n",count);lseek(fd,0,SEEK_SET);        //调整文件指针位置到文件头char str[100];if((count = read(fd,str,100)) < 0)printf("read failed!!!\n");elseprintf("The str count is: %d\n",count);close(fd);return 0;
}

在Linux-C中使用read函数返回值为0的问题相关推荐

  1. python定义函数后怎么输出_python中如何定义函数返回值

    返回值简介: 简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事. 函数 ...

  2. ftok file php,Linux和PHP中的ftok函数返回值不一致问题跟踪

    在IPC中中,我们经常事情ftok函数来获取key,来作为获取消息队列id.共享存储标识和信号量ID.在项目中使用了php进程和linux进程通信,采用了消息队列的方式,但是结果表现为php中的fto ...

  3. Linux编程基础之lseek函数返回值

    目录 前言 lseek函数返回值 实操证明 书的原图 总结 前言 操作系统:Fedora 头文件 <sys/types.h> , <unistd.h> lseek函数返回值 o ...

  4. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?

    1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...

  5. main函数返回值return 0

    1. C语言中 在 C89(C语言的早期标准)中,main() 是可以接受void返回值的.Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C pro ...

  6. open函数返回值为0

    open函数是我们开发中经常会遇到的,这个函数是对文件设备的打开操作,这个函数会返回一个句柄fd,我们通过这个句柄fd对设备文件读写操作. 我们在对这个fd作判断的时候,经常会用到: fd = ope ...

  7. strcmp函数返回值是0,一直动用错了

    原型:extern int strcmp(const char *s1,const char * s2); 用法:#include < string.h > 功能:比较字符串s1和s2. ...

  8. UE C++中获得蓝图函数返回值

    UE 反射应用 方法一: UFunction* bpFunc = ik_actor->GetClass()->FindFunctionByName(FName("GetRetur ...

  9. linux中signal函数返回值,signal函数、sigaction函数及信号集操作函数

    信号是与一定的进程相联系的.也就是说一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如一个进程可以忽略某些信号而只处理其他一些信号另外一个进程还可以选择如何处理信号.总之这些总与特定的进程相联 ...

最新文章

  1. RabbitMQ:入门(三)——RabbitMQ用户管理、角色管理与权限管理
  2. 51nod 1179 最大的最大公约数 (打表计数法)
  3. python 面向对象(类)--学习笔记
  4. hibernate关系映射(一对一)
  5. poi实现Excel导入导出依赖
  6. css中变形,css3中变形处理
  7. [Swift]LeetCode478. 在圆内随机生成点 | Generate Random Point in a Circle
  8. 阿里云SFTP配置方法及故障排查
  9. 申论(写作篇)之花木体申论写作法
  10. 阿里、字节跳动再度发力游戏,腾讯、网易怕了吗?
  11. leaf Variable、requires_grad、grad_fn的含义以及它们之间的关系
  12. 视频人像分割算法—C++推理(视频抠图 图片抠图)
  13. 五种经典卷积神经网络
  14. 深度清理C盘空间,让你的C盘多出20G
  15. P2P信贷平台业务数据分析
  16. c语言e怎么表示_如何一个月学完c语言
  17. kde 桌面显示管理器_KDE文件管理器Dolphin的综合指南
  18. 杭电oj —— 2037(贪心算法)
  19. 三谈exception——错误处理
  20. python进行数据分析------相关分析

热门文章

  1. 阿里云发布ET工业大脑开放平台,全球首个工业智能的孵化基地
  2. 腾讯云点播简介和使用流程
  3. 开发一款C语言小游戏——骑士飞行棋
  4. 搜狗旅行翻译宝3月12日京东首发 支持离线翻译拍照翻译售价1498元
  5. 环融科技携手梅花网,与你一起讨论快消品企业如何管理好营销费用
  6. Oracle 11g AMM设置
  7. 逆转倒计时?XP还可以爱多久
  8. 在Excel表格中,任意修改原工作表数据,新工作中内容跟着改变,如何操作?
  9. 引流软件_对象和索引流
  10. 企鹅智酷“2015年互联网终极报告——解读九大行业红利”