zoukankan      html  css  js  c++  java
  • 读mysqlbinlog二三事

    最近研究研究mysql,写个小程序读取一下MySQL的binlog日志,探究一下其中的结构,没想到这么困难,折腾了好几个晚上。

    首先对于英文的mysql文档,期初看起来真是不习惯,其中的含义真是琢磨不同,以为是自己理解的失误导致程序出错,但实际上是c++方面太薄弱。

    这里遇到了几个问题:

    1.字节序

    虽说网上的有一篇文章说是小端存储,但是实际上,读二进制的整数时,还是出了问题。这个问题好解决,自己转一下就OK了,但是有出现了一个新问题

    2.char类型相加

    因为char类型是c/c++编程语言的最小单位,所以提供的api都是以char为单位的,但是我们定义需要读的数的时候,定义成

    char a = 0;

    这样的话就有问题了,当赋值给int变量的时候,就会发生问题,此时已然保持了其有符号特性,如

    char x = 155;

    int y.= x;

    这里,y是负数,而不是正数,为了能够正确得到结果,需要

    char x = 155;

    int y = (int)x;

    这样就能得到准确的正数了。

    这里能够看出,c++严格定义了有符号数的加法和无符号数的加法和赋值语句。精度有可能随着赋值的操作,或转型操作,导致符号丢失或保留。

  • 相关阅读:
    红蓝对抗
    SQLMAP用法大全
    Web安全工程师(进阶)课程表
    msf连接PostgreSQL数据库
    我的web安全工程师学习之路——规划篇
    web安全深度剖析pdf
    js面试题
    js克隆一个对象
    js面试必考:this
    前端面试:js数据类型
  • 原文地址:https://www.cnblogs.com/weiguangyue/p/14208302.html
Copyright © 2011-2022 走看看