一个lseek引起的思考
先看一段代码:
int find_value(int fd)
{
int ret;
char buff[8] = "";
struct timeval st,ed;
long long delta;
gettimeofday(&st,NULL);
ret = read(fd,buff,sizeof(buff));
if (-1 == ret){
printf("failed to read buff\n");
return -1;
}
gettimeofday(&ed,NULL);
delta = ed.tv_usec - st.tv_usec;
printf("delta read is %llu\n",delta); return ret;
}
在一个文件中,fd作为文件描述符号,从头开始read数据,循环find_value(int fd)时,下一次到达则不是从头开始read数据。
int fd;
fd = open("/tmp/log",O_RDONLY);
if (-1 == fd)
perror("Error in opening file\n");
通过发现一个sleek的函数,具体使用说明如下:
#include<unistd.h>
#include<sys/types.h> off_t lseek(int fd, off_t offset, int whence) whence:
a. SEEK_SET
b. SEEK_CUR
c. SEEK_END
可以做成以下的利用:
while(1)
{
ret = lseek(fd,0,SEEK_SET);//turn to the head of file each time
if (-1 == ret)
perror("Error in sleeking the start\n");
find_value(fd);
}
tips:
作为一点简单的编程思考,虽然这是一个简单的问题,细节决定成败,思维与严谨不能分开。
瞎写代码没用,真正从审视的角度和斟酌的思维去编写代码,得到的效果往往很不一样。
特别一些返回值,有时候可以debug出更多的细节。
off_t t 其实如同 int t
typedef off_t int
语言都是通过一些指定的逻辑去实现功能
一个lseek引起的思考的更多相关文章
- Spring之LoadTimeWeaver——一个需求引发的思考---转
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...
- 由一个emoji引发的思考
由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来 ...
- 对于多个数据库表对应一个Model问题的思考
最近做项目遇到一个场景,就是客户要求为其下属的每一个分支机构建一个表存储相关数据,而这些表的结构都是一样的,只是分属于不同的机构.这个问题抽象一下就是多个数据库表对应一个Model(或者叫实体类).有 ...
- 从一个聊天信息引发的思考之Android事件分发机制
转载请声明:http://www.cnblogs.com/courtier/p/4295235.html 起源: 我在某一天看到了下面的一条信息(如下图),我想了下(当然不是这 ...
- 一个commit引发的思考
这几天我翻了翻golang的提交记录,发现了一条很有意思的提交:bc593ea,这个提交看似简单,但是引人深思. commit讲了什么 commit的标题是"sync: document i ...
- 对于996.ICU这个热门话题,一个在校学生的思考
最近GitHub上的项目996.ICU一经发布就得巨大的回响,看了这么说法和评论,作为一个准程序猿也有自己的一些想法. 1 其实看得出来,很大一部分人认为的是付出与回报不对等.简单说就是工资对于工作量 ...
- vmware中如何检查cpu的使用状况-一个考题引发的思考
来自一个VCP的考题,有点兴趣.可参看: 如何在VMware里使用esxtop? http://thocm.com/a/caozuoxitongzixun/xunihuazonghezixun/VMw ...
- MyBatis 学习记录7 一个Bug引发的思考
主题 这次学习MyBatis的主题我想记录一个使用起来可能会遇到,但是没有经验的话很不好解决的BUG,在特定情况下很容易发生. 异常 java.lang.IllegalArgumentExceptio ...
- 由一个问题引起的思考:WEB开发中,使用JSON-RPC好,还是RESTful API好?
起因: 研究zabbix的API设计风格.查看zabbix官网API文档,可以看到使用的是json-rpc:2.0 随后搜索到知乎上的一个问题讨论:https://www.zhihu.com/ques ...
随机推荐
- Solution -「SHOI2016」「洛谷 P4336」黑暗前的幻想乡
\(\mathcal{Description}\) link. 有一个 \(n\) 个结点的无向图,给定 \(n-1\) 组边集,求从每组边集选出恰一条边最终构成树的方案树.对 \(10^9+ ...
- WPF + Winform 解决管理员权限下无法拖放文件的问题
wpf,winform混合解决管理员权限无法拖放文件的问题 学习自: https://zhuanlan.zhihu.com/p/343369663 https://zhuanlan.zhihu.com ...
- 【一天一个小知识10/20】Unity通过www获取json文本信息。
前提:领导要我在unity获取局域网服务器的文本信息.给了一个json的网络文本让我测试.我对于json以及服务器比较陌生.就直接去网上找相关的资料. 以下是自己测试的代码,没问题. 测试的网络jso ...
- Android蓝牙扫码连接时,防止Activity重启
集成了一个蓝牙的扫码枪,发现每次连接时,应用的当前Activity会销毁再次创建.调试了下, 没有监听到任何的事件,非常困惑.搜了一阵了解到是Android的一个机制. 某些设备配置可能会在运行时发生 ...
- hacker模拟环境
https://geekprank.com/hacker/
- PentestBox在win10里打不开工具 显示无系统命令的解决方法
PentestBox详细安装过程:http://www.cnblogs.com/ESHLkangi/p/8336398.html 在使用PentestBox的时候出现了打不开工具的问题,最后看到一个大 ...
- 一图胜千言,想让数据产生影响力,必须拥有好上手的BI数据分析工具
当杂乱无章的数据,经过数据清洗后,得到了想用的数据,但是查看这些数据通过数据库只能看到数据本身,无法看到其中的规律,可以通过BI数据分析工具,图形化展示数据,使数据更形象化的展现在用户面前,更容易看出 ...
- Spring系列22:Spring AOP 概念与快速入门篇
本文内容 Spring AOP含义和目标 AOP相关概念 声明式AOP快速入门 编程式创建代理对象 Spring AOP含义和目标 OOP: Object-oriented Programming 面 ...
- javaScript(js)手写原生任务定时器源码
javaScript(js)手写原生任务定时器 功能介绍 定时器顾名思义就是在某个特定的时间去执行一些任务,现代的应用程序早已不是以前的那些由简单的增删改查拼凑而成的程序了,高复杂性早已是标配,而任务 ...
- 痞子衡嵌入式:揭秘i.MXRTxxx系列上串行NOR Flash双程序可交替启动设计
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT500/600上串行NOR Flash双程序可交替启动设计. 在上一篇文章 <i.MXRT1170上串行NOR Fla ...