编程 · 共 138 篇

编程 2017-04-16 / 14 分钟

使用C++ STL库统计一散文中单词出现次数和行号

在开发过程中经常会遇到文件处理的情形,例如统计一篇文章单词的数量、行数、出现频率最高的几个单词等等。这篇文章主要通过C++来解析一篇文章,实现每个单词(不区分大小写)出现的总次数和出现的行号的统计。 ! 使用C++ STL库统计一散文中单词出现次数和行号 https://cdn.typecodes....

编程 2017-03-14 / 8 分钟

C++中使用vs2015和g++对new开辟的堆内存是否初始化的分析

在C++中使用 new 运算符在堆中申请一内存块的使用权的同时还可以执行对该内存块的初始化工作。下面通过使用2个类对象和2个基本数据类型来分析使用 new class object 、 new class object 和 new int 、 new int 对这块内存的初始化情况。 一、示例程序 ...

编程 2017-03-10 / 22 分钟

Linux TCP客户端出现CLOSE_WAIT后进入死循环

在 前文 https://typecodes.com/cseries/tcpclosewaitsigpipe.html "《Linux TCP通信出现CLOSE WAIT后导致服务端进程挂掉》" 中讲述了Linux服务端TCP的某个链路变成 CLOSE WAIT 状态,然后由于客户端已经关闭了(发送...

编程 2016-06-26 / 10 分钟

C++删除map容器中指定值的元素

map容器是C++ STL中的重要一员,平时会遇到删除map容器中value为指定元素的问题,例如删除所有字符串为"123"或者能整除3的元素。 一、map容器下的方法说明 由于map容器下的方法较多,这里只列举代码中用到的几个方法: insert 方法: !text //插入val到pos的后面,...

编程 2016-04-08 / 13 分钟

自己实现inet_aton和inet_ntoa函数功能

之前遇到过要自己实现 inet aton 和 inet ntoa 函数功能的问题,这里总结一下。 一、基本知识 网络字节序是大端模式,那么内存中的低地址存放的是数据的高位,内存中的高地址存放的是数据的低位。 inet aton 是将IPv4地址(点分法)转换成对应的十进制整数;而 inet ntoa...

编程 2016-03-23 / 10 分钟

C语言删除无序整型数组中的重复元素及时间复杂度

遇到一个题,大概要求是写一个函数处理来去掉一个无序的整型数组(例如int i arr = { 1, 2, 2, 3, 4, 2, 3, 5 };)中重复的元素,并返回最终的长度。 一、思路 看到这道题的时候,第一反应就是需要删除元素,然后联想到单链表。但是后面一想还是不划算,因为单链表还得先把数组中...

编程 2016-03-14 / 7 分钟

Linux使用KILL 0检测进程是否存在

之前遇到过 kill pid, 0 的情况,由于平常没注意到kill函数的形参为0的情况,不知道它的作用。后面用 man 2 kill 命令查看了下kill函数的说明,发现可以用来检测进程的存在情况。 ! man 2 kill查看关于形参0的说明 https://cdn.typecodes.com/...

编程 2016-03-14 / 20 分钟

UNIX环境高级编程(APUE)之单实例守护进程

在UNIX环境高级编程(APUE)中提到了守护进程的创建方法,思路很清晰,所以这里通过代码具体研究下。 ! UNIX环境高级编程(APUE)之单实例守护进程 https://cdn.typecodes.com/2016/03/apue.png "UNIX环境高级编程(APUE)之单实例守护进程" 一...

编程 2016-03-13 / 6 分钟

vsnprintf字符串格式化输出实例:日志中打印程序名和行号

在Linux C/C++程序中打印日志时,可能会由于需要打印未知个数的变量参数,那么 vsnprintf 函数就排上用场了。这里使用一个简单的C程序例子,演示在打印源程序文件名和该打印函数所在的行号的同时,使用vsnprintf函数打印个数未知的参数变量。 一、完整程序 代码比较简单,如果需要把内容...

编程 2016-02-29 / 16 分钟

Linux TCP通信出现CLOSE_WAIT后导致服务端进程挂掉

在 前文 https://typecodes.com/cseries/tcpdumpwiresharkclosewait2.html "《使用TCPDUMP和Wireshark排查服务端CLOSE WAIT二》" 中讲述了Linux服务端TCP通信出现 CLOSE WAIT 状态的原因,这篇文章主要...