![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 81
robertXin
不为写代码而写代码
展开
-
gdb简单命令手册
awatch 设置观察点,无论何时指定位置的值被读或写了,程序执行都会停下来。backtrace 向后打印出栈的内容,显示将程序带到当前位置的函数调用和参数值。该命令可简写为bt。break 设置断点,程序运行会在指定的行或函数名处中断。clear 清除某行或函数上由先前break设置的断点。continue 继续先前被调试器中断的程序的执行。Ctrl...原创 2012-05-29 15:00:14 · 68 阅读 · 0 评论 -
linux c学习笔记----共享内存(shmget,shmat,shmdt,shmctl)
shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值:成功返回共享存储的id,失败返回-1key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_PRIVATE。 当ke...原创 2012-12-11 18:08:52 · 1348 阅读 · 0 评论 -
linux c学习笔记----线程创建与终止
进程原语线程原语描述forkpthread_create创建新的控制流exitpthread_exit从现有的控制流中退出waitpidpthread_join从控制流中得到退出状态atexitpthread_cancel_push注册在退出控制流时调用的函数getpidpthread_self获取...原创 2012-12-14 17:32:42 · 243 阅读 · 0 评论 -
linux c学习笔记----线程同步
1.互斥量互斥变量用pthead_mutex_t数据类型来表示,在使用互斥变量之前,必须首先对它进行初始化,可以把它置为常量PTHREAD_MUTEX_INITIALIZER(只对静态分配的互斥量),也可以能过调用pthread_mutex_init函数进行初始化。如果动态地分配互斥量(例如通过调用malloc)函数,那么释放内存前需要使用pthread_mutex_destroy....原创 2012-12-28 17:49:09 · 108 阅读 · 0 评论 -
linux c学习笔记----线程属性
一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 名称::pthread_attr_init/pthread_attr_destroy功能...原创 2013-01-04 17:38:55 · 166 阅读 · 0 评论 -
linux c学习笔记----互斥锁属性
互斥锁属性使用互斥锁(互斥)可以使线程按顺序执行。通常,互斥锁通过确保一次只有一个线程执行代码的临界段来同步多个线程。互斥锁还可以保护单线程代码。要更改缺省的互斥锁属性,可以对属性对象进行声明和初始化。通常,互斥锁属性会设置在应用程序开头的某个位置,以便可以快速查找和轻松修改。表 4–1 列出了用来处理互斥锁属性的函数。表 4–1 互斥锁属性例程操作...原创 2013-01-05 18:37:53 · 317 阅读 · 0 评论 -
linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
socket(建立一个socket通信) 相关函数 accept,bind,connect,listen表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int socket(int domain,int type,int protocol);...原创 2013-01-10 17:29:32 · 238 阅读 · 0 评论 -
linux c学习笔记----select函数详解
select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。 何为文件句柄????文件句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是,如man socket可以看到“On success, a file des...原创 2013-01-11 17:25:36 · 102 阅读 · 0 评论 -
linux c学习笔记----UDP基础客户/服务编程(sendto,recvfrom)
sendto(经socket传送数据)相关函数 send , sendmsg,recv , recvfrom , socket表头文件 #include < sys/types.h >#include < sys/socket.h >定义函数 int sendto ( int s , const void...原创 2013-01-14 18:01:28 · 1084 阅读 · 0 评论 -
linux c学习笔记----SCTP基础客户/服务编程(setsockopt,sctp_sendmsg等)
在编程之前先了解一下sctp套接字选项 setsockopt(设置socket状态) 相关函数 getsockopt表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int setsockopt(int s,int level,int optn...原创 2013-01-15 17:53:09 · 1519 阅读 · 0 评论 -
redis2.6.9源码学习---Big_Endian&Little_Endian
在阅读redis源码/src/endianconv.c时遇到了一些不理解的语句#include <stdint.h>/* Toggle the 16 bit unsigned integer pointed by *p from little endian to * big endian */void memrev16(void *p) { unsig...原创 2013-02-04 10:50:01 · 165 阅读 · 0 评论 -
redis2.6.9源码学习---dict
redis的hashtable------dict.c先了解基本的structtypedef struct dictEntry { void *key; union { void *val; uint64_t u64; int64_t s64; } v; struct dictEntry ...原创 2013-02-07 11:59:51 · 87 阅读 · 0 评论 -
linux c学习笔记----消息队列(ftok,msgget,msgsnd,msgrcv,msgctl)
ftok()#include <sys/types.h>#include <sys/ipc.h>函数原型: key_t ftok( const char * pathname , int proj_id );参数: pathname 就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽 然为i...原创 2012-12-07 17:46:25 · 645 阅读 · 0 评论 -
linux c学习笔记----信号(sigaction,sigaddset,sigprocmask)
sigaction(查询或设置信号处理方式) 相关函数 signal,sigprocmask,sigpending,sigsuspend表头文件 #include<signal.h>定义函数 int sigaction(int signum,const struct sigaction *act ,s...原创 2012-11-30 16:23:16 · 635 阅读 · 0 评论 -
redis2.6.9源码学习---ziplist
ziplist相比之前分析的zipmap要相对复杂一些,但也有一些相似的地方。首先通过注释来了解一下它的基本结构 <zlbytes><zltail><zllen><entry><entry><zlend> * <zlbytes>是一个无符号整数,用来存储 ziplist占用的字节数。 * &am原创 2013-05-16 12:05:39 · 100 阅读 · 0 评论 -
linux c学习笔记----进程的概念与标志
1.进程的概念 (1)通俗的讲程序是一个包含可以执行代码的文件,是一个静态的文件.而进程是一个开始执行但是还没有结束的程序的实例.就是可执行文件的具体实现. 一个程序可能有许多进程,而每一个进程又可以有许多子进程.依次循环下去,而产生子孙进程。(2)当程序被系统调用到内存以后,系统会给程序分配一定的资源(内存,设备等等)然后进行一系列的复杂操作,使程序变成进程以供系统调用.在系统里...原创 2012-10-25 11:11:49 · 92 阅读 · 0 评论 -
linux c学习笔记----进程创建(fork,wait,waitpid)
1.pid_t fork();(1)当一个进程调用了fork 以后,系统会创建一个子进程.这个子进程和父进程不同的地方只有他的进程ID 和父进程ID,其他的都是一样.就象符进程克隆(clone)自己一样.(2)为了区分父进程和子进程,我们必须跟踪fork 的返回值. 当fork 掉用失败的时候(内存不足或者是用户的最大进程数已到)fork 返回-1,否则fork 的返回值有重要的作用.对于...原创 2012-10-25 15:35:55 · 354 阅读 · 0 评论 -
C库需要注意的函数
本文转自:http://hub.opensolaris.org/bin/view/Community+Group+security/funclist#Hbcopy C Library Functions Table of C Library Functions The table below explains the necessary security con...原创 2013-03-08 16:50:28 · 291 阅读 · 0 评论 -
linux c学习笔记----文件的创建与读写(open,read,write)
open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen表头文件 #include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>定义函数 int open( co...原创 2012-10-26 11:49:41 · 652 阅读 · 0 评论 -
linux c学习笔记----文件的属性(access,stat,fstat)
access(判断是否具有存取文件的权限) 相关函数 stat,open,chmod,chown,setuid,setgid表头文件 #include<unistd.h>定义函数 int access(const char * pathname,int mode);函数说明 access...原创 2012-10-26 14:22:57 · 294 阅读 · 0 评论 -
linux c学习笔记----目录文件的操作(opendir,readdir,closedir)
注:为什么要说目录文件?其实在linux中目录也是一种文件,只是它的内容是上级的目录和当前目录下的文件信息等,详情可以看看相关深入的书籍 opendir(打开目录)相关函数 open,readdir,closedir,rewinddir,seekdir,telldir,scandir表头文件 #include<sys/types.h&g...原创 2012-10-26 16:11:05 · 1800 阅读 · 0 评论 -
linux c学习笔记----管道文件(pipe,popen,mkfifo,pclose,dup2)
pipe(建立管道) 相关函数 mkfifo,popen,read,write,fork表头文件 #include<unistd.h>定义函数 int pipe(int filedes[2]);函数说明 pipe()会建立管道,并将文件描述词由参数filedes数组返回。filedes[0]为...原创 2012-10-29 16:46:50 · 344 阅读 · 0 评论 -
非阻塞connect编程
非阻塞模式有3种用途 1.三次握手同时做其他的处理。connect要花一个往返时间完成,从几毫秒的局域网到几百毫秒或几秒的广域网。这段时间可能有一些其他的处理要执行,比如数据准备,预处理等。 2.用这种技术建立多个连接。这在web浏览器中很普遍. 3.由于程序用select等待连接完成,可以设置一个select等待时间限制,从而缩短connect超时时间。多数实现中,connect的超时...原创 2013-04-08 17:08:23 · 85 阅读 · 0 评论 -
win7下wxwidgets开发环境配置
从事PHP有将近两年了,一直都是网页,想自己做个窗口程序玩玩。有一些c/c++的基础,想搞一个跨平台的,开始想搞QT,但想想前景好像不太好,诺基亚都差不多了。最后绝定玩下wxwidgets首先从网上下载个IDE,codelite这个好像是专门为wxwidgets设计的,于是果断安装之。我安装是最全的版本,就是全有的那种。安装好后创建一个demo运行,会有很多的报错。基本是说找不...原创 2012-11-09 22:49:43 · 278 阅读 · 0 评论 -
redis2.6.9源码学习---zipmap
在看此文件源码之前,先看到此文件头部的英文注释,以下是本人理解翻译版:</p>该文件实现了一个数据结构映射到其他字符串的字符串,实施一个O(n)查找数据结构的设计是非常记忆高效的。 Redis的hase类型就是使用这种由小数量元素组成的数据结构,转换为一个哈希表。鉴于很多次Redis hase是用来表示对象组成的一些字段,这是一种在内存使用上很大的成功。它的zipmap的格式为:&...原创 2013-05-02 17:03:34 · 127 阅读 · 0 评论 -
linux c学习笔记----信号(alarm,kill,singal)
alarm(设置信号传送闹钟)相关函数 signal,sleep表头文件 #include<unistd.h>定义函数 unsigned int alarm(unsigned int seconds);函数说明 alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目...原创 2012-11-23 11:41:11 · 191 阅读 · 0 评论 -
redis2.6.9源码学习---adlist
源码adlist.c adlist.h,先来看看adlist的结构/* Node, List, and Iterator are the only data structures used currently. */typedef struct listNode { struct listNode *prev; struct listNode *next; ...原创 2013-02-07 16:27:32 · 80 阅读 · 0 评论