编程 · 共 138 篇

编程2017-04-16/9 分钟

Linux C++使用函数模板实现JSON数据快速和完整写入到文件

昨天在自己的CentOS7机器上编译了JSONCPP库,然后根据api写了下面这个简单的测试程序。代码涉及了文件流数据读取和写入、jsoncpp库的读写api的使用。整个处理流程是先读取一个json格式文件的内容,然后把这些内容分别用jsoncpp库的 Json::FastWriter (快速写入)...

编程2017-03-14/8 分钟

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

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

编程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/20 分钟

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

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

编程2016-03-14/7 分钟

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

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

编程2016-03-13/6 分钟

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

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

编程2016-02-29/10 分钟

一个sigprocmask和sigsuspend函数的综合应用

在Linux服务端后台开发中,经常会用到信号处理函数: sigprocmask 和 sigsuspend 。这篇文章主要通过一个综合实例演示如何使用sigprocmask函数屏蔽目标信号(信号掩码)以及sigsuspend函数挂起进程。 ! Linux中编译执行sigprocmask sigsusp...