在Linux-C中使用read函数返回值为0的问题
在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的问题相关推荐
- python定义函数后怎么输出_python中如何定义函数返回值
返回值简介: 简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事. 函数 ...
- ftok file php,Linux和PHP中的ftok函数返回值不一致问题跟踪
在IPC中中,我们经常事情ftok函数来获取key,来作为获取消息队列id.共享存储标识和信号量ID.在项目中使用了php进程和linux进程通信,采用了消息队列的方式,但是结果表现为php中的fto ...
- Linux编程基础之lseek函数返回值
目录 前言 lseek函数返回值 实操证明 书的原图 总结 前言 操作系统:Fedora 头文件 <sys/types.h> , <unistd.h> lseek函数返回值 o ...
- java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?
1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...
- main函数返回值return 0
1. C语言中 在 C89(C语言的早期标准)中,main() 是可以接受void返回值的.Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C pro ...
- open函数返回值为0
open函数是我们开发中经常会遇到的,这个函数是对文件设备的打开操作,这个函数会返回一个句柄fd,我们通过这个句柄fd对设备文件读写操作. 我们在对这个fd作判断的时候,经常会用到: fd = ope ...
- strcmp函数返回值是0,一直动用错了
原型:extern int strcmp(const char *s1,const char * s2); 用法:#include < string.h > 功能:比较字符串s1和s2. ...
- UE C++中获得蓝图函数返回值
UE 反射应用 方法一: UFunction* bpFunc = ik_actor->GetClass()->FindFunctionByName(FName("GetRetur ...
- linux中signal函数返回值,signal函数、sigaction函数及信号集操作函数
信号是与一定的进程相联系的.也就是说一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如一个进程可以忽略某些信号而只处理其他一些信号另外一个进程还可以选择如何处理信号.总之这些总与特定的进程相联 ...
最新文章
- RabbitMQ:入门(三)——RabbitMQ用户管理、角色管理与权限管理
- 51nod 1179 最大的最大公约数 (打表计数法)
- python 面向对象(类)--学习笔记
- hibernate关系映射(一对一)
- poi实现Excel导入导出依赖
- css中变形,css3中变形处理
- [Swift]LeetCode478. 在圆内随机生成点 | Generate Random Point in a Circle
- 阿里云SFTP配置方法及故障排查
- 申论(写作篇)之花木体申论写作法
- 阿里、字节跳动再度发力游戏,腾讯、网易怕了吗?
- leaf Variable、requires_grad、grad_fn的含义以及它们之间的关系
- 视频人像分割算法—C++推理(视频抠图 图片抠图)
- 五种经典卷积神经网络
- 深度清理C盘空间,让你的C盘多出20G
- P2P信贷平台业务数据分析
- c语言e怎么表示_如何一个月学完c语言
- kde 桌面显示管理器_KDE文件管理器Dolphin的综合指南
- 杭电oj —— 2037(贪心算法)
- 三谈exception——错误处理
- python进行数据分析------相关分析