![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码
shamofeiyu
这个作者很懒,什么都没留下…
展开
-
多线程编程中,将线程绑定到指定CPU
参考网络上的资料,具体出处忘了,亲测可以在多核处理上,处理大数据业务时,有时为了对线程资源有更好的控制,需要将一些核心处理线程绑定到指定的CPU核上,pthread库就提供这样的接口。大概封装了一下,在线程函数中调用就可以了int bind2cpu(int cpu_index){ cpu_set_t set; cpu_set_t get; int cpu_num = sys原创 2012-08-10 16:20:24 · 1982 阅读 · 0 评论 -
Linux网络数据捕获之原始套接字
处于一些目的,有时需要对到达网口的所有网络数据进行捕获,系统也提供了这样的接口,稍微懂网络编程的都知道SOCK_DGRAM、SOCK_STREAM,差不多就UDP、TCP之类的吧。但是还有一个很少用的叫SOCK_RAW,原始套接字,使用它你可以捕获网卡上的所有网络数据,当然这需要超级用户权限。贴个列子吧,网上摘的,具体出处忘了#include #include #include #inc原创 2012-08-11 16:39:28 · 1496 阅读 · 0 评论 -
Linux环境下获取网卡连接状态
在嵌入式项目中,有时需要获取设备本身的一些运行信息,网口的连接状态就是其中之一,这还真不太好弄,网上查了一下资料,整理了一下,pIfName为网口名称,比如eth0,返回1为连接,0为断开。int getNetLinkStates(const char *pIfName){ int skfd; struct ifreq ifr; struct ethtool_value edata原创 2012-08-11 15:21:10 · 1273 阅读 · 0 评论 -
实现读写无加锁的不定长的数据环形缓冲
在很多情况下需要用到多线程编程,而多线程很多时候要用到生产者、消费者模型,比如处理网络数据,至少需要一个数据接收线程进行网络数据的接收,但一般不会也在该线程中进行数据的处理,因为这处理可能会比较耗时,而网络数据底层缓冲多比较小,处理不及时就会造成数据丢失,这就需要接收线程响应尽可能的快速,一般为接收数据然后将数据放入缓冲中,而数据处理线程则对数据缓冲进行读取数据然后再处理。这就是典型的生产者和消费原创 2013-03-03 14:54:22 · 1672 阅读 · 0 评论 -
线程池C++实现(转)
这个一个实现线程池的C++类,忘了从哪个网站上copy了,感觉挺好用ThreadPool.h/* Thread Pool implementation for unix / linux environments Copyright (C) 2008 Shobhit Gupta This program is free software: you can r转载 2013-02-28 17:25:52 · 768 阅读 · 0 评论 -
浮点型数据存储方式分析
文章转自:http://blog.chinaunix.net/uid-20937170-id-3396073.html============================================================================================================================ 笔试转载 2013-03-31 18:19:26 · 1217 阅读 · 0 评论 -
linux 下实现缓冲区溢出漏洞shellcode
文章转载自:http://blog.chinaunix.net/uid-20662820-id-3405539.html1. shellcode编写 所谓的shellcode,就是通过一段机器代码,获取到shell命令行。shellcode可以通过多种方式获得,比如裸写16进制代码(一般很少有人这么干。。。), 常见的还是写汇编代码,然后转换成机器代码。 这里分享一转载 2013-04-04 14:05:26 · 1496 阅读 · 0 评论 -
Tips of Linux C programming
文章转自 淘宝核心团队博客 http://rdc.taobao.com/blog/cs/?p=16751. 优雅地使用链表 链表是编程中经常要用到的数据结构,结构体描述时分为数据域和指针域,本没有什么好讲。但有没有想过教科书上的这种方式有什么问题?通过这种方式定义和使用链表,对于不同的链表类型,都要定义各自的链表结构,繁琐的很。linux kernel中链表的用法才应转载 2013-05-17 10:24:41 · 710 阅读 · 0 评论 -
嵌入式Linux环境下线程CPU消耗跟踪
在比较大型的项目中,通常都会使用多线程技术,而且通常是多人合作开发,各方自测OK之后,整合在一起往往会出现一些问题,CPU使用率过高就是其中之一。如何在不熟悉所有模块代码的情况下,快速的定位到具体哪一个线程在消耗CPU,显得很有必要。在X86上,可以借助一些工具进行定位分析,但是在嵌入式系统中,工具就比较匮乏,各命令功能也比较简单,就不好定位。现介绍一种简单通用的办法:第一步:获取各个线程原创 2014-03-16 21:00:47 · 4210 阅读 · 2 评论