- 博客(13)
- 收藏
- 关注
原创 基于环形链表的无锁队列(求指证)
数据结构typedef struct node{ void *data; struct node *next;} node_t;typedef struct queue{ node_t *put; node_t *take; int buffer_size;} queue_t;函数接口/** 构建环形链表* -1:failure* 0...
2020-03-05 22:39:35
198
原创 librdkafka-producer源码阅读学习(1)
业务需要,系统中要使用librdkafa。主要是关于producer的部分。说实话,模仿官方的demo也写出来了,并引入到已有的系统中。但出于系统稳定性的考虑,我需要对使用到kafka部分的程序可能出现的异常作出全面的考虑。网上翻阅各种博客,加之自己的理解,也算是对producer有了点粗浅的认知。 这一节我打算整体的说一下Kafka的运作过程,侧重于producer端的叙说。...
2018-11-28 21:27:45
688
原创 visual gdb环境搭建记事
在linux环境下一行一行敲书上例子代码时,无不痛苦地想,这破vim,写代码真不舒服(虽然我之前已经花了很大精力,搞了ycm补全加上其他一些插件)。无不怀念vs中编程。甚至在学习UNP时,我想着直接自己在windows下搭这环境得了。。。 偶然间,了解到vs有vs for linux c++的东西。我兴致冲冲地下载了下来。结果搞了2,3个小时以后,按照官网一步一步做还是调试不起来...
2018-08-15 21:12:40
2482
原创 pthread_key多次调用pthread_key_create
pthread_key是线程私有变量,它可以使多个线程用一个全局变量,但各自持有不同的值(通过pthread_set_specific调用)。pthread_key的使用一般是经过pthread_key_create->pthread_set_specific->pthread_key_delete这三个过程。如果pthread_key_create多次结果会怎样呢?多次pthre...
2018-08-09 21:35:28
1428
1
原创 libevent&inotify完成文件动态监控
今天要完成类似配置文件动态刷新的功能,就查了下linux中类似的文件变化通知机制,遂发现inotify。学习了数小时,略有收获,就总结下。 inotify是linux中用来监控文件系统的一种策略。(The inotify API provides a mechanism for monitoring file system events)它可以监控一个目录或指定的文件。 ...
2018-08-06 22:17:01
980
原创 UNIX网络编程学习(五)---UDP编程
UDP相比TCP是无连接的。它收发数据是通过recvfrom和sendto两个函数。它们的原型如下: ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, int flags, struct sockaddr *from, socklen_t *addrlen); ssize_t sendto(int sockf...
2018-08-06 21:58:06
1584
原创 UNIX网络编程学习(四)——I/O复用:select和poll
I/O复用就是I/O进程不必阻塞于等待I/O,I/O就绪时内核将会通知该进程。I/O复用是通过select和poll函数支持的。在谈I/O复用之前,先来看下unix下5种I/O模型。以recvfrom(recvfrom)为例。阻塞式I/O:|-----------recvfrom等待数据报----------|--------接收-------| ...
2018-07-25 21:38:07
225
原创 UNIX网络编程学习(三)——套接字编程---服务端
我总觉得总结是件很痛苦的事情,我想一直推进向前学习。但不做总结又感觉少了点什么。下图是来自书中的TCP服务器端的实例 #include "unp.h" >>int main(int argc, char **argv) { int listenfd, connfd; pid_t childpid; socklen_t clile...
2018-07-18 22:23:00
386
原创 UNIX网络编程学习(二)——戏说套接字
TCP,UDP等等协议的编程为什么还要加定语如TCP套接字编程,UDP套接字编程呢?也就是为什么要有套接字呢?我之前一直想不通,今天看书时,突然有种明悟——下套接收字节。一个套就是ip:port的组合,然后还要有个品牌(IPV4,IPV6)来标识这个套。因此就不难理解套接字地址的定义了。以IPV4的地址结构为例:struct in_addr { in_addr_t s_addr;};stru...
2018-07-12 22:07:06
183
原创 UNIX网络编程学习(一)——TCP,UDP与SCTP
这一篇是看了UNP的第二章后个人的一些总结和理解。总述TCP是面向连接的、可靠的传输协议。 UDP是无连接的、不可靠的传输协议。 SCTP是面向关联的、可靠的传输协议。TCPTCP面向连接 TCP在进行端对端的传输时,要求客户端和服务端都都创建一个ip:port套接字。服务端要经过socket、bind、和listen三个阶段来创建;而客户端只经历一个socket阶...
2018-07-11 21:53:17
466
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人