数据库内核

热衷于分享开源数据库使用、内核源码等相关技术,包括但不限于 MySQL/PostgreSQL/Greenplum/TiDB 等。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  C/C++

摘要:本文首发于 2015-05-04 14:50:16 概述 一个由 C/C++ 编译的程序占用的内存分为以下几个部分: 栈区(stack):由编译器自动分配、释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。一般大家常说的堆栈和栈是一样的,就是栈(stack),而说 堆 时才是堆 阅读全文
posted @ 2021-09-21 16:22 DBKernel 阅读(297) 评论(0) 推荐(0)

摘要:本文首发于 2015-01-03 21:04:36 概述 IPv4 中使用 gethostbyname() 函数完成主机名到地址解析,这个函数仅仅支持 IPv4 ,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储 IPv4 地址的空间。 IPv6中引入了getaddrinfo() 阅读全文
posted @ 2021-09-21 16:19 DBKernel 阅读(867) 评论(0) 推荐(0)

摘要:本文首发于 2014-07-21 15:35:30 6. 附录 6.1. 字节序与网络序 6.1.1. 字节序 字节序,顾名思义就是字节的高低位存放顺序。 对于单字节,大部分处理器以相同的顺序处理比特位,因此单字节的存放和传输方式一般相同。 对于多字节数据,如整型(32位机中一般占4字节),在不同的 阅读全文
posted @ 2021-09-21 16:06 DBKernel 阅读(182) 评论(0) 推荐(0)

摘要:本文首发于 2014-07-10 10:00:41 代码 #include <stdio.h> #include <stdlib.h> #include <glob.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> 阅读全文
posted @ 2021-09-21 15:54 DBKernel 阅读(71) 评论(0) 推荐(0)

摘要:本文首发于 2014-07-10 09:48:48 代码 #include <stdio.h> #include <mntent.h> #include <string.h> #include <sys/vfs.h> static const unsigned long long G = 1024* 阅读全文
posted @ 2021-09-21 15:50 DBKernel 阅读(74) 评论(0) 推荐(0)

摘要:本文首发于 2014-01-10 19:48:48 1. getopt 该函数用来解析命令行参数。 1.1. 函数定义 int getopt(int argc, char * const argv[], const char *optstring); #include <unistd.h> 前两个参 阅读全文
posted @ 2021-09-21 15:32 DBKernel 阅读(168) 评论(0) 推荐(0)

摘要:本文首发于 2014-08-04 17:56:55 第一章 词法“陷阱” 1. =不同于== if(x = y) break; 实际上是将y赋给x,再检查x是否为0。 如果真的是这样预期,那么应该改为: if((x = y) != 0) break; 2. &和| 不同于 && 和 || 3. 词法 阅读全文
posted @ 2017-07-17 22:27 DBKernel 阅读(279) 评论(0) 推荐(0)

摘要:开发板上运行可执行程序报出错误: line1: 1: Syntax error: word unexpected (expecting ")") 解决思路: 1.编译器的问题 用arm-linux-gcc编译,可能原来是用gcc编译的。 假如是脚本,#!/bin/sh 改 #!/bin/bash试试 阅读全文
posted @ 2016-06-02 17:11 DBKernel 阅读(7006) 评论(0) 推荐(0)

摘要:本文首发于 2014-07-21 15:32:28 1. 引言 考虑下面的结构体定义: typedef struct{ char c1; short s; char c2; int i; }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始地址是0,则s的地址就是1,c2的地址是3 阅读全文
posted @ 2016-06-02 15:13 DBKernel 阅读(13028) 评论(0) 推荐(0)

摘要:本文首发于 2014-07-10 11:51:10 前言 本文把 makefile 分成了三份:生成可执行文件的 makefile,生成静态链接库的 makefile,生成动态链接库的 makefile。 这些 makefile 都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码 阅读全文
posted @ 2016-06-02 11:13 DBKernel 阅读(22893) 评论(6) 推荐(6)

摘要:1、指向类的数据成员的指针: 声明格式如下: <类型说明符> <类名>::* <指针变量名>; 2、指向类的成员函数的指针: 声明格式如下: <类型说明符> (<类名>::*<指针名>)(<参数表>); 如: class A { private: int a; public: int c; publ 阅读全文
posted @ 2016-04-24 18:25 DBKernel 阅读(12054) 评论(0) 推荐(0)