关闭
当前搜索:

linux环境变量LD_LIBRARY_PATH

在登录Linux时要执行文件的过程如下: 在刚登录Linux时,首先启动 /etc/profile 文件,然后再依次启动用户目录下的 ~/.bash_profile、 ~/.bash_login、~/.profile文件。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:if [ -f ~/.ba...
阅读(227) 评论(0)

windows条件变量

在我的印象中,一直以为windows的多线程同步机制,也就是同步对象只有四个,临界区,互斥,事件,信号量。而linux的同步对象也是四个,互斥,条件变量,读写锁,信号量。打开windows的同步对象头文件synchapi.h才发现,windows其实也有条件变量和读写锁。而这里我要重点说的是条件变量。在我之前的文章《Linux互斥锁和条件变量》说过了linux下通过互斥锁和条件变量实现生产者消费者模...
阅读(217) 评论(0)

MySQL分表存储过程

drop procedure if EXISTS exe_sql; delimiter $ CREATE PROCEDURE `exe_sql`(IN sqlVar VARCHAR(4096)) BEGIN SET @v_s = sqlVar; PREPARE stmt FROM @v_s; EXECUTE stmt; DEALLOCATE PREPARE stmt;...
阅读(478) 评论(0)

[置顶] libevent多线程使用bufferevent的那些事

void do_accept(struct evconnlistener *listener, evutil_socket_t fd, struct sockaddr *sa, int socklen, void *ctx) { //不使用Nagle算法,选择立即发送数据而不是等待产生更多的数据然后再一次发送 int optval = 1; setsockopt(fd, SO...
阅读(2028) 评论(2)

recv和send的完整写法

struct evbuffer* input = evbuffer_new();//数据缓冲 void read_data() { char buffer[1024] = { '\0' }; int ret = recv(fd, buffer, 1024, 0); //从接收缓冲取数据成功 if (ret > 0) { evbuffer_add...
阅读(671) 评论(2)

socket套接字选项和模式

设置非阻塞windows的做法: u_long nonblocking = 1; ioctlsocket(fd, FIONBIO, &nonblocking); linux的做法 int flags; flags = fcntl(fd, F_GETFL, NULL); fcntl(fd, F_SETFL, flags | O_NONBLOCK);设置FD_CLOEXECint flags; flag...
阅读(727) 评论(0)

libevent使用event事件触发服务端实例

struct event_base* m_base = event_base_new(); if (NULL == m_base) { return 1; }首先是创建base,后面的event都是基于base,关联到base才能进入循环。struct sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr...
阅读(194) 评论(0)

libevent学习网站

http://www.monkey.org/~provos/libevent/doxygen-2.0.1/files.html...
阅读(147) 评论(0)