随笔分类 -  unix环境编程

使用条件变量的正确姿势
摘要:等待条件变量的正确姿势: 1)必须使用while循环来等待条件变为真,即醒来之后要立马再判断一次条件是否成立再决定是否需要继续等待, 因为很有可能条件并不为真,但是线程却被各种奇怪的中断或者pthread_cond_broadcast这样的东西给唤醒了 2)至于condition.wait()的作用 阅读全文

posted @ 2016-09-05 20:47 远近闻名的学渣 阅读(2394) 评论(0) 推荐(0)

SO_REUSEADDR 与 SO_REUSEPORT 选项
摘要:首先一条TCP connection 是由两个 addr-port 的组合组成的 1, 开启 SO_REUSEADDR 可以起到下面4个不同的功能 (1) 即使以前建立的连接还存在,依然可以在这个连接的本地端口号上绑定监听服务器, 通常这个条件通常是这么遇见的 1,启动一个服务器, 监听addr1 阅读全文

posted @ 2016-05-20 00:17 远近闻名的学渣 阅读(433) 评论(0) 推荐(0)

sock地址结构
摘要:/*************************** IPv4 ***********************************/ struct in_addr { in_addr_t s_addr; //s_addr 指socket address, in_addr_t 指 Internet address type }; struct sockaddr_in { ... 阅读全文

posted @ 2016-05-19 22:20 远近闻名的学渣

C语言中的标准输入输出流
摘要:1, 标准库中的流是自带缓冲的,通常: 1) 若输入输出为终端,一次缓冲一行 2)若输入输出为文件,全缓冲 3)标准错误不缓冲 也就是说,若混用 read select等系统调用 和 流, 很可能数据被缓冲在流的缓冲区,从而让read,读不到数据,或者数据不能及时写入。并且select也将更难检测 阅读全文

posted @ 2016-03-17 19:57 远近闻名的学渣 阅读(520) 评论(0) 推荐(0)

Unix socket编程杂谈
摘要:一、 同步 、异步、信号驱动IO、阻塞与非阻塞、I/O复用 同步包括了: 阻塞与非阻塞,I/O复用,信号驱动,因为他们在调用read等函数时,如果有数据可读,都会等到数据读取完毕才返回,而异步是发起后直接返回,等待内核通知读写完毕。 同步模型指的是所有的事情都按照某个顺序做完,并且只有一件事做完了才 阅读全文

posted @ 2016-03-15 23:16 远近闻名的学渣

Mac OS X更新EI Capitan之后vim的ycm插件的语法检测出现异常的解决办法
摘要:在更新了系统之后发现ycm插件的的语法检测出现非常奇怪的错误,连一个简单的hello world都会报错,于是我把homebrew里边的软件全部更新了一边之后还是不能用,总算是明白了为啥稳定的服务器是不更新东西的了- - 当时的hello world的错是ostream 和 const char * 阅读全文

posted @ 2016-02-15 22:44 远近闻名的学渣

导航