C/C++编程开发
数据库码农
博客已经迁移到 简书,URL = http://www.jianshu.com/u/69fa0ec8790f
展开
-
代码模版
/************************************************************************* > File Name: stack.h > Author: zhoulin > Mail: 715169549@qq.com > Created Time: Tue Mar 2原创 2016-05-03 09:45:20 · 277 阅读 · 0 评论 -
C WIth Class Designer
其实C语言实现C++的封装、多态是比较方便的,主要看你的设计。class.h header file#define buf_max 32typedef struct _parent{ //define member of superclass int age; char name[buf_max]; char job[buf_max]; //public原创 2016-07-28 11:45:46 · 3134 阅读 · 0 评论 -
No manual entry for pthread_create
perryn@localhost ~ 20:45:30 $ man pthread_createNo manual entry for pthread_createthe wat of solve the problem on centos: yum install man-pages libstdc++-docs原创 2016-08-03 11:30:09 · 706 阅读 · 0 评论 -
Built-in functions for atomic memory access
5.44 Built-in functions for atomic memory accessThe following builtins are intended to be compatible with those described in the Intel Itanium Processor-specific Application Binary Interface, section 7转载 2016-08-08 15:54:15 · 399 阅读 · 0 评论 -
C/Golang中的值传递和指针传递
-------------------------golang----------------------------------------------package mainimport "fmt"func A(m int, n []int) { m = 100 n[0] = 99 fmt.Printf("After : &m=%p,&n=%p,原创 2016-09-23 17:18:25 · 5229 阅读 · 0 评论 -
Linux的僵尸进程处理1
Linux中有两种异常的进程: 1.孤儿进程:应用通过fork进程后,父进程被kill或者exit,该父进程的子进程被1号进程接管。linux内核启动时候回启动0号进程,启动完毕后0号进程就处于空闲状态,所有的进程的父进程都是有1号进程fork出来的。 2.僵尸进程:fork操作出来的父子进程,子进程收到kil -9的操作或者exit的操作,子进程的内存和CPU资源被操作系统回收,但是PCB块原创 2016-05-03 09:45:03 · 1274 阅读 · 0 评论 -
Linux 多线程文件复制
参考了朋友的设计思想,重新编写了代码实现文件的多线程复制 fcp.h代码:#ifndef __FCP_H#define __FCP_H#define MAX 125//define read block structtypedef struct _page{ char fin[MAX]; char fout[MAX]; lo原创 2016-05-03 09:43:56 · 1580 阅读 · 0 评论 -
new/mallc/delete/free的区别
在使用C/C++开发使用,很多对于mallc和new、free和delete搞不清楚的,这里能简单说下区别1.malloc和free是库函数;new和delete是C++的关键字2.malloc是以字节来申请堆内存;new是以类型申请堆空间3.malloc和free是单纯的申请内存和释放内存4.new和delete分别负责申请内存调用calss的构造函数初始化和调用析构函数释放资源原创 2016-10-15 11:15:39 · 589 阅读 · 0 评论 -
C++编译器对构造函数的影响
C++调用构造函数比较依赖C++编译器:#include using namespace std;class T{ public: T(int i){cout<<"Call T(),i="<<i<<endl;} //explicit T(int i){cout<<"Call T(),i="<<i<<endl;}原创 2016-10-15 12:07:30 · 420 阅读 · 0 评论 -
linux下锁/无锁性能比较
代码示例中三种类型: 1.pthread_mutex_t,互斥锁 2.__sync_add_and_fetch,GCC自带的原子锁 3.nolock,无锁方式代码如下:/************************************************************************* > File Na原创 2017-01-13 18:04:30 · 2259 阅读 · 0 评论 -
计算机结构以及体系
0.图示:1.计算机组成是针对硬件组成,而计算机体系结构是针对程序员而言。2.计算机基本结构: 2.1 CPU:计算机操作以及数据处理的核心 2.2 IO:计算机和外部设备的数据传输 2.3 主存储器:存储数据 2.4 系统互连:为IO/CPU/存储之间提供通信机制,比如系统总线3.计算机的4个功能: 数原创 2017-02-05 16:52:42 · 606 阅读 · 0 评论 -
GDB调试golang代码
11.2 使用GDB调试开发程序过程中调试代码是开发者经常要做的一件事情,Go语言不像PHP、Python等动态语言,只要修改不需要编译就可以直接输出,而且可以动态的在运行环境下打印数据。当然Go语言也可以通过Println之类的打印数据来调试,但是每次都需要重新编译,这是一件相当麻烦的事情。我们知道在Python中有pdb/ipdb之类的工具调试,Javascript也有类似工具,这些工转载 2016-06-16 10:59:33 · 5006 阅读 · 1 评论 -
linux screen命令详解
linux screen 命令详解一、背景系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。二、简转载 2016-06-15 10:02:09 · 373 阅读 · 0 评论 -
linux 查看ascii码表
root@:/data/code/cwork/binlog:man ascii C program '\X' escapes are noted. Oct Dec Hex Char Oct Dec Hex Char ------------------------------------------原创 2016-06-14 15:16:46 · 13720 阅读 · 0 评论 -
Linux的僵尸进程处理2
linux下的僵尸进程处理例子,同时也演示了管道通信的弊端/************************************************************************* > File Name: ft.c > Author: zhoulin > Mail: 715169549@qq.com原创 2016-05-03 09:45:15 · 228 阅读 · 0 评论 -
redis 协议的简单介绍
zhoulin@:/opt/redis307/src:gdb ./redis-server --启动redis的服务端(gdb) set args /etc/redis_6379.conf --设置gdb参数(gdb) br readQueryFromClient --在该函数地方设置断点1180 nread = read(fd, c->querybuf+qblen, readlen)原创 2016-05-03 09:45:06 · 392 阅读 · 0 评论 -
linux 下远程执行命令 socket实现
服务端: /************************************************************************* > File Name: srv.c > Author: zhoulin > Mail: 715169549@163.com > Created Time原创 2016-05-03 09:44:54 · 1937 阅读 · 0 评论 -
linux进程间通信,使用共享内存方式
闲来没事给想要学习进程间使用共享内存通信的例子,共享内存的效率比消息队列、信号量都要高?为什么呢? (1)共享内存是运行在用户空间的,由应用程序控制。 (2)消息队列和信号量都是把数据从一个进程用户空间复制到内核空间,然后再由内核控件复制到另外一个进程的用户空间。 #include #include #include string.h>#include #i原创 2016-05-03 09:44:44 · 312 阅读 · 0 评论 -
C实现键值对(Map功能)
kv.h代码如下:#define UT_BASE_NODE_T(TYPE) \ struct { \ TYPE *start; \ TYPE *end; \ }typedef struct _kv{ char *k; char *v; unsigned int klen;原创 2016-05-03 09:44:21 · 6921 阅读 · 0 评论 -
c 实现字符串反转(参考redis源码)
#include #include #include string.h>typedef struct _dys{ unsigned int len; unsigned int free; char buf[];}dys;char *dynewlen(const void *prt,size_t initlen){ dys *ds=原创 2016-05-03 09:44:17 · 265 阅读 · 0 评论 -
Linux 多线程的线程栈
Linux多线程的线程栈都会维护自己的一个函数栈,以及指令集 例如N 个线程调用prt函数,prt函数内部有局部变量,虽然N个线程的执行顺序是随机的,但是每个线程调用的prt函数的局部变量都是每个线程的线程栈内部维护。每个线程都的有自己的函数栈,而且每个线程执行都是独立的。#include #include #include typedef struct _T原创 2016-05-03 09:44:01 · 985 阅读 · 0 评论 -
C实现队列
今天又是在加班,无聊就写了一个队列的实现,具体代码如下:que.h#define ut_base(TYPE) \ struct { \ TYPE *start; \ TYPE *end; \ }__attribute__((packed))#define mem_alloc(TYPE,SIZE) \原创 2016-05-03 09:43:26 · 498 阅读 · 0 评论 -
一致性哈希算法设计
一致性哈希算法设计思路:运行结果:root@:/data/code/cwork/chash:./chash ----vsrvname = 192.168.100.1:3306-vm1,hkey =126515----------vsrvname = 192.168.100.1:3306-vm2,hkey =77752----------vsrvname = 192原创 2016-05-06 15:28:53 · 24794 阅读 · 0 评论 -
OC实现容器(C版OOP思想实现)
C实现容器,用于存储任何对象。其中加了一哈希层用于快速查找,提高查找效率。整个代码是模拟C++的OP思想编写。具体的实现如下:em.h/************************************************************************* > File Name: elem.h > Author: zhoulin原创 2016-05-17 22:21:23 · 1479 阅读 · 0 评论 -
博客迁移
大家好,鄙人博客已经迁移到如下地址: https://www.jianshu.com/u/69fa0ec8790f原创 2018-05-16 19:51:10 · 289 阅读 · 0 评论