
linux/unix
文章平均质量分 50
Dalek
这个作者很懒,什么都没留下…
展开
-
GDB常用命令
http://blog.youkuaiyun.com/cskerrydn/article/details/5029344转载 2012-05-31 15:11:53 · 543 阅读 · 1 评论 -
TCP/IP详解基于4.4BSD-Lite源码
4.4BSD-Lite 源码地址 https://pub.allbsd.org/bsd-sources/原创 2012-08-20 17:49:36 · 3520 阅读 · 1 评论 -
SendARP函数用法
这个函数用来发送ARP数据包并在定义的MAC缓冲区中返回定义的IP对应的MAC地址SendARP( IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr, PULONG PhyAddrLen );第一个参数是IP地址的网络字节顺序,而不是一个指针,当初我就是赋值成指针而使得获取不了MAC地转载 2012-12-25 09:13:47 · 5865 阅读 · 0 评论 -
send成功但是数据还在Send-Q中
send成功但是数据还在Send-Q中[root@main heartbeat]# netstat -anActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State原创 2013-01-05 14:47:11 · 4458 阅读 · 2 评论 -
accept的Invalid Argument错误
http://adam281412.blog.163.com/blog/static/3370006720120123035967/在编写socket程序的时候,遇到一个奇怪的问题,服务端用accept接收请求,客户端通过telnet连接上去。结果每次连上去以后连接又立即断开了,而server端accept以后并没有close连接。 代码如下:C转载 2013-01-15 16:44:14 · 975 阅读 · 1 评论 -
DMESG -打印级别
要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来 Linux命令:dmesg 功能说明:显示开机信息。 语 法:dmesg[-cn][-s ] 补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/l转载 2013-01-17 13:57:26 · 5671 阅读 · 1 评论 -
Makefile.am Makefile.in与Makefile文件关系
http://hi.baidu.com/hins_pan/item/54b6ae3f5d8df0fade222129Makefile.am, Makefile.in, Makefile文件之间关系以及aclocal, automake, autoconf等命令作用的探究aclocal # 产生 aclocal.m4libtoolize --forceautomake -转载 2013-03-04 14:54:11 · 789 阅读 · 0 评论 -
getopt_long用法及实例
GETOPT(3) Linux Programmer?. Manual GETOPT(3)NAME getopt - Parse command-line options 翻译:getopt 解析命令行参数SYNOPSIS #include原创 2013-02-22 11:35:33 · 888 阅读 · 0 评论 -
1.4亿在线背后-QQ IM后台架构的演化与启示(1)(2)
http://wenku.baidu.com/view/2b81d5dcad51f01dc281f1e8.htmlhttp://wenku.baidu.com/view/ae82506348d7c1c708a145e9.html转载 2013-03-12 17:49:03 · 1565 阅读 · 0 评论 -
VLAN配置
http://www.cyberciti.biz/tips/howto-configure-linux-virtual-local-area-network-vlan.html转载 2012-08-07 09:20:07 · 608 阅读 · 0 评论 -
LINUX内置数据类型是线程安全的
#include #include #include #include #define MAX_THREAD 100short g_value = 0;pthread_mutex_t mutex;void *threadOne(void *pdata){while (1){//pthread_mutex_lock(&mutex);g_原创 2012-07-03 09:48:44 · 831 阅读 · 1 评论 -
自己写的LIST操作函数C语言
#include #include typedef struct data{int i;int j;}DATA;typedef struct node{void *data;struct node *next;}NODE;typedef struct list{NODE *head;NODE *tail;int cont;}LIS原创 2012-05-19 17:07:33 · 3068 阅读 · 1 评论 -
dereferencing pointer to incomplete type错误
dereferencing pointer to incomplete type原创 2012-06-13 13:30:44 · 740 阅读 · 0 评论 -
信号量用法
信号量的使用主要有以下接口可供调用:1 sem_init#include semaphore.h>int sem_init(sem_t *sem, int pshared, unsigned int value);sem_init函数用于初始化一个未命名的信号量;sem_t *sem:指向一个信号量结构的指针;int pshared:用于指示信号量是进程内线程共享还原创 2012-06-27 21:01:06 · 1286 阅读 · 0 评论 -
ubuntu下安装mysql
MySql Ubuntu下安装和配置:1 安装在联网环境下sudo apt-get install mysql-server命令执行需要root的密码输入;若mysql安装完成,mysql服务器会自动启动,运行以下命令查看确认mysql服务器是否运行;sudo netstat -tap | grep mysql若正常运行会有如下的类似信息;tcp原创 2012-06-28 15:12:26 · 738 阅读 · 0 评论 -
Linux 套接字编程中的 5 个隐患(IBM文档)
http://www.ibm.com/developerworks/cn/linux/l-sockpit/原创 2012-06-28 20:46:33 · 700 阅读 · 0 评论 -
ifconfig用法总结
1 查看网络接口状态dalek@ubuntu:~/work/epoll$ ifconfig -aeth0 Link encap:Ethernet HWaddr 00:0c:29:9c:84:70 inet addr:192.168.199.129 Bcast:192.168.199.255 Mask:255.255.255.0转载 2012-06-30 10:24:47 · 1653 阅读 · 0 评论 -
epoll函数是线程安全的
#include // for sockaddr_in#include // for socket#include // for socket#include // for printf#include // for exit#include // for bzero#include #include #define HELLO_WORLD_SERVER_PORT 9999 #define BUF原创 2012-06-30 18:37:16 · 2360 阅读 · 2 评论 -
通过 ulimit 改善系统性能(FROM IBM)
通过 ulimit 改善系统性能孙 翎, 软件工程师, WSO2 Inc叶 光昶, 软件工程师, EMC潘 宁河, 软件工程师, EMC简介: 本文介绍了 ulimit 内键指令的主要功能以及用于改善系统性能的 ulimit 使用方法。通过这篇文章,读者不仅可以了解 ulimit 所起的作用,并且可以学会如何更好地通过 ulimit 限制资源的使用来转载 2012-07-03 12:26:22 · 804 阅读 · 0 评论 -
提个问题给大家
多个线程共享一个地址指针会是什么情况?原创 2013-04-07 11:23:07 · 700 阅读 · 0 评论 -
Recv_Q 内积攒很多数据包问题
[root@active ~]# netstat -an | grep 4113 tcp 0 0 172.31.1.205:4113 0.0.0.0:* LISTEN udp 2094080 0 0.0.0.0:4113 0.0.0.0:*原创 2013-04-27 17:36:09 · 7349 阅读 · 3 评论 -
Linux 安装CUNIT
查看CUNIT下的README文档,Linux下的安装过程如下Linux: In addition to jam, the standard GNU build system is still supported. The usual sequence of steps should succeed in building and installing CUnit:原创 2013-05-07 15:28:59 · 1406 阅读 · 0 评论 -
工具
LIBEVhttp://software.schmorp.de/pkg/libev.htmlMEMCASHEDhttp://www.memcached.org/MONGODBhttp://www.mongodb.org原创 2013-08-20 17:06:40 · 654 阅读 · 0 评论 -
MAKEFILE
$@--目标文件,$^--所有的依赖文件,$$@ 表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于目标中模式定义的集合。 $% 仅当目标是函数库文件中,表示规则中的目标成员名。例如,如果一个目标是"foo.a(bar.o)",那么,"$%"就是"bar.o","$@"就是"foo.a"。如果目标不是函数库文件(Unix下是[.a原创 2013-11-12 16:40:00 · 632 阅读 · 0 评论 -
OPENSSL SHA256计算
#include "include/openssl/crypto.h"#include "include/openssl/sha.h"#include int main(){ int iDatLen = 102400; SHA256_CTX ctx; unsigned char pSrcDat[102400]; unsigned char pDscDat[1024]; int原创 2013-11-14 11:12:31 · 3663 阅读 · 0 评论 -
LINUX 集群
http://www.ibm.com/developerworks/cn/linux/theme/cluster.html转载 2014-01-09 10:48:06 · 646 阅读 · 0 评论 -
cmake Debug模式和Release模式
在cmake中要编译debug模式的话,在CMakeLists.txt中添加如下两行SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb ")SET(CMAKE_CXX_FLAGS_RELEASE "${ENV{CXXFLAGS} -O3 -Wall")然后,在编译的时候,使用如下命令:原创 2012-02-11 21:03:59 · 5552 阅读 · 0 评论 -
HADOOP单节点安装
Single Node SetupPurposePrerequisitesSupported PlatformsRequired SoftwareInstalling SoftwareDownloadPrepare to Start the Hadoop ClusterStandalone OperationPseudo-Distribu原创 2012-02-09 16:07:28 · 1765 阅读 · 0 评论 -
pthread_kill Segmentation fault
这几天在调试服务器程序,通过pthread_kill给接收线程对象发信号处理,发现程序运行到pthread_kill处失败,调用打印堆栈信息如下frame 0 -- ./datactlserver(_Z13SignalHandleri+0x43) [0x80541bb]frame 1 -- [0xf85400]frame 2 -- /lib/i386-linux-gnu/libpthr原创 2012-02-12 11:20:11 · 4068 阅读 · 0 评论 -
碰到bind错误,主程序异常,调用处理函数退出问题
折腾了很久,才发现是调用BIND函数失败,从打印日志上看到是地址已经被用,是地址复用的问题,查看IBM文档库,如下,问题解决。您可以使用 bind API 函数来绑定一个地址(一个接口和一个端口)到一个套接字端点。可以在服务器设置中使用这个函数,以便限制可能有连接到来的接口。也可以在客户端设置中使用这个函数,以便限制应当供出去的连接所使用的接口。bind 最常见的用原创 2012-06-29 11:22:43 · 2409 阅读 · 0 评论 -
NGX 信号处理流程
int ngx_cdeclmain(int argc, char *const *argv){ ....#if !(NGX_WIN32) if (ngx_init_signals(cycle->log) != NGX_OK) { // 服务器启动时进行初始化信号处理 return 1; } if (!ngx_inherited && ccf原创 2013-07-11 10:25:45 · 1006 阅读 · 0 评论 -
使用事件驱动模型实现高效稳定的网络服务器程序
前言事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。关于本文提及的服务器模型,搜索网络可以查阅到很多的实现代码,所以,本文将转载 2013-07-10 18:15:50 · 766 阅读 · 0 评论 -
接收缓冲区数据包
问题描述:热备系统的维护包监听端口为20000, 热备切换后,主机的20000端口的缓冲区的数据较多,在过若干时间后,消息包接收完毕问题原因:多线程锁颗粒度过大解决方法:将锁颗粒度减小原创 2013-05-21 16:08:28 · 1248 阅读 · 1 评论 -
nginx为什么自己要实现ngx_atoi函数等
nginx为什么自己要实现ngx_atoi函数等原创 2013-05-28 17:39:58 · 2195 阅读 · 0 评论 -
服务器启动流程
int ngx_cdeclmain(int argc, char *const *argv){ ngx_int_t i; ngx_log_t *log; ngx_cycle_t *cycle, init_cycle; ngx_core_conf_t *ccf; ngx_debug_init(); if原创 2013-07-08 15:25:10 · 1056 阅读 · 1 评论 -
修改进程名称
#define ngx_setproctitle(title) setproctitle("%s", title)原创 2013-07-09 17:10:59 · 2370 阅读 · 1 评论 -
setitimer函数
GETITIMER(2) Linux Programmer?. Manual GETITIMER(2)LINUX 编程手册NAME getitimer, setitimer - get or set value of an interval timergetitimer, setitimer - 获取或设置一原创 2013-07-10 10:46:48 · 1202 阅读 · 0 评论 -
socketpair函数
本文转自:http://blog.youkuaiyun.com/xjtuse_mal/archive/2007/06/27/1668599.aspx一.概念及用途一个问题:如何创建全双工管道?直接的办法当然是pipe两次,创建两组管道,但是有没有更简单的呢?socketpair就可以了,man socketpair:socketpair - create a pair of conne转载 2013-07-10 16:19:58 · 1123 阅读 · 1 评论 -
SIG函数
#include int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signum); int sigdelset(sigset_t *set, int sign原创 2013-07-11 09:00:38 · 5386 阅读 · 2 评论 -
进程掩码及信号屏蔽(来自百度百科)
信号掩码 在POSIX下,每个进程有一个信号掩码(signal mask)。简单地说,信号掩码是一个“位图”,其中每一位都对应着一种信号。如果位图中的某一位为1,就表示在执行当前信号的处理程序期间相应的信号暂时被“屏蔽”,使得在执行的过程中不会嵌套地响应那种信号。为什么对某一信号进行屏蔽呢?我们来看一下对CTRL_C的处理。大家知道,当一个程序正在运行时,在键盘上按一下CTRL转载 2013-07-11 09:45:20 · 1175 阅读 · 0 评论