摘要: 有时候程序运行在不同的linux发行版本上一个正常,一个出错,引起的原因可能是某个共享库比较老旧,对比它在不同的系统上运行时依赖的库版本就可以知道引起错误可能的原因。那么如何知道一个程序运行时依赖哪些共享库呢? 一.查看程序依赖的共享库 1.使用ldd命令 首先得了解ldd是用来做什么的,需要注意什 阅读全文
posted @ 2016-03-10 21:09 thammer 阅读(6582) 评论(0) 推荐(0)
摘要: 第五章中,有一个例子模拟客户端并发的终止TCP连接,服务器捕捉并处理SIGCHLD信号并调用waitpid函数防止僵死进程的出现。信号处理函数中核心的一句是: 1 while ( (pid = waitpid(-1, &statloc, WNOHANG)) > 0 ) 2 { 3 printf("w 阅读全文
posted @ 2016-01-30 15:01 thammer 阅读(616) 评论(0) 推荐(0)
摘要: 1.关闭影响进程airmon-ng check kill将要进入监听模式的无线网卡断开它已连接的AP2.查看无线网卡的名字ifconfig ,例如 wlan03.进入监听模式:airmon-ng start wlan0 启动成功,ifconfig 后发现多了一个mon04.扫描附件wifiairo... 阅读全文
posted @ 2016-01-25 17:07 thammer 阅读(8973) 评论(0) 推荐(1)
摘要: TCP包结构 一个TCP包结构如下: 一个TCP包主要由TCP包头和数据部分组成,包头固定部分为20字节,选项和数据部分根据实际情况设置为4N(N可以为0)字节。 1.16bit源端口和目的端口号,它可以确认数据的传输方向(暂不考虑更底层的包) 2.32bit序号,它是为TCP包中数据部分进行编号的 阅读全文
posted @ 2016-01-16 17:04 thammer 阅读(2740) 评论(0) 推荐(1)
摘要: 消息队列以链表的方式将消息存储于内核中,调用msgsnd,msgrcv函数往消息队列里面投送,取出指定的消息。创建一个消息队列 生成一个消息队列或者获取已有消息队列id #include #include #include int msgg... 阅读全文
posted @ 2016-01-06 18:13 thammer 阅读(2778) 评论(0) 推荐(1)
摘要: Artistic Style 1.23Maintained by: Jim PatteeOriginal Author: Tal DavidsonUsage : astyle [options] Source1.cpp Source2.cpp [...] astyle [options] Beau... 阅读全文
posted @ 2016-01-03 17:46 thammer 阅读(942) 评论(0) 推荐(0)
摘要: 管道是一种只允许用在有亲属关系的进程间通信的方式,由函数pipe创建一个管道,read,write进行读写操作。 #include int pipe(int pipefd[2]);参数pipefd[2]数组返回打开的读写描述符,pipefd[0]为读,pipefd[1]... 阅读全文
posted @ 2016-01-01 15:04 thammer 阅读(428) 评论(0) 推荐(0)
摘要: 占位,等看了unp再补充 阅读全文
posted @ 2015-12-31 22:16 thammer 阅读(125) 评论(0) 推荐(0)
摘要: 定义 记录锁:当一个进程对一个文件的某个部分或者整个文件作读操作或者修改时,记录锁可以阻止另一个进程修改文件的同一区域。 由其定义,可以知: 记录锁是对文件的一定范围,包括整个文件进行保护 记录锁的3个要素是:进程ID,文件范围,操作。也就是说判断记录锁是否产生排斥需要依据这3点。 ... 阅读全文
posted @ 2015-12-29 15:22 thammer 阅读(521) 评论(0) 推荐(0)
摘要: 在linux多线程编程中,线程的执行顺序是不可预知的,但是有时候由于某些需求,需要多个线程在启动时按照一定的顺序执行,虽然可以使用一些比较简陋的做法,例如:如果有3个线程 ABC,要求执行顺序是A-->B-->C,可以create A--->sleep---->create B---->slee... 阅读全文
posted @ 2015-12-29 14:12 thammer 阅读(783) 评论(0) 推荐(0)