c/c++
文章平均质量分 69
linranguo
C/C++ 网络/应用,还会一点C#
展开
-
Linux信号(signal)
Linux信号(signal) 机制分析【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。 【关键字】软中断信号,转载 2016-03-02 17:07:31 · 376 阅读 · 0 评论 -
centOS系统gcc升级步骤
第一步,下载你需要的gcc源码,https://mirror.sergal.org/gnu/gcc/ 到这个地址去找就可以了。这里我们假设安装的是gcc-4.9.0.tar.gz 第二步,tar -xzvf gcc-4.9.0.tar.gz 然后 cd gcc-4.9.0 第三步,./contrib/download_prerequisites 这一步是下载所需的依赖,...转载 2018-08-13 16:19:46 · 637 阅读 · 0 评论 -
位运算 小技巧
在看开源软件时,一些底层基础函数用位运算,看了半天才明白,记录总结一下:1、n&(1<<k - 1) //n对 pow(2,k) 取模,也就是n%pow(2,k) n&~(1<<k - 1) //对齐: (n+ 1<<k-1)&~(1<<k - 1) //向上对齐2、n&(n...原创 2018-02-27 15:32:12 · 243 阅读 · 0 评论 -
深入C语言可变参数(va_arg,va_list,va_start,va_end,_INTSIZEOF)
一、什么是可变参数 在C语言编程中有时会遇到一些参数个数可变的函数,例如printf(),scanf()函数,其函数原型为: int printf(const char* format,…),int scanf(const char *format,…);它除了有一个参数format固定以外,后面跟着的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可转载 2017-05-10 17:28:56 · 711 阅读 · 0 评论 -
用C/C++创建windows服务程序
转载请标明是引用于 http://blog.csdn.NET/chenyujing1234 欢迎大家拍砖!一、演示过程下方代码演示了如何使用vs(C/C++)创建windows服务程序工程文件下载地址: http://download.csdn.net/download/sooth2008/2759082 使用visual studio创建一个win32控制台转载 2016-11-23 11:33:59 · 1571 阅读 · 0 评论 -
转载--多进程和多线程的优缺点
在Linux下编程多用多进程编程少用多线程编程。 IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linux更转载 2016-11-18 17:54:54 · 331 阅读 · 0 评论 -
多线程还是多进程的选择及区别
原文:http://blog.csdn.net/lishenglong666/article/details/8557215 最原始的博主我没有找到,只能把我从何处转的此篇博文的链接发出来。感觉这篇博文写的很棒,特此转载了鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考转载 2016-11-18 17:54:11 · 306 阅读 · 0 评论 -
auto decltype 用于返回值类型后置时的占位
decltype是 GCC 实现的第一个 C++ 11 新特性(在C++程序设计语言中,decltype作为操作符,用于获取表达式的数据类型。C++11标准引入decltype,主要是为泛型编程而设计,以解决泛型编程中有些类型由模板参数决定而难以(甚至不可能)表示的问题)。它实际上起源于一个相当古老的 GNU 扩展关键字——__typeof__。这个非标准关键字也能够在 C 语言中使用,GNU转载 2016-11-18 09:26:51 · 469 阅读 · 0 评论 -
C++ STL移除容器元素的方法总结
删除后的元素对应的iterator 就失效了,不可再用,否则导致不可知行为,需要注意!我总结了3种删除方法: 推荐方法11、使用iterator++map::iterator itMap = mapInt.begin();for ( ; itMap != mapInt.end(); ) { if ( itMap->second == 2 ) { // itMap++原创 2016-10-20 14:23:55 · 447 阅读 · 0 评论 -
C语言的fopen函数(文件操作/读写)
头文件:#include fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, const char * mode);【参数】path为包含了路径的文件名,mode为文件打开方式。文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:r(read): 只读转载 2016-10-20 11:29:36 · 1128 阅读 · 0 评论 -
libuv之线程池的坑,注意避免
libuv的uv_queue_work 使用,不能在fork的子进程中使用,原因未调查清楚,记录一下!望有清楚的提点一下,谢谢原创 2016-08-31 16:13:05 · 7687 阅读 · 5 评论 -
strtok使用和隐藏坑
strtok的隐藏坑转载 2016-08-19 10:01:12 · 2027 阅读 · 0 评论 -
活动代码页简介
记录一下windows代码页代表的字符集名称转载 2016-06-07 15:13:31 · 788 阅读 · 0 评论 -
打印内存的c语言实现
有很多时候,特别是linux服务端开发程序是,需要看内存块的信息,网上搜到的一个现成的代码,用了不错,记一下!void HexDump(char *buf,int len,int addr) { int i,j,k; char binstr[80]; for (i=0;i<len;i++) { if (0==(i%16)) {转载 2016-05-25 16:30:10 · 7762 阅读 · 5 评论 -
如何判断主机是大端还是小端(字节序)
简单的判断大端还是小端 字节序转载 2016-03-29 13:34:09 · 2926 阅读 · 0 评论 -
C++中从文件末尾反向读取N行文件记录。
最近在实际的开发项目遇到了一个问题,有个24小时在跑的Linux程序,会不断有日志输出,写到一个指定的日志文件中。但是,日志只提供了输出的功能,并没有读取日志文件的功能。如果给程序员自己看日志是很简单的,只需要用tail 或 vi 即可。但是现在有个需求,需要在程序的界面上显示日志文件的内容,而且是最近的100行记录。在网上搜索了一遍,总结一下:1:从文件头开始,先用getline函数获取每一...转载 2019-03-18 16:06:11 · 1307 阅读 · 0 评论