大端模式和小端模式转化 在工作中遇到一个问题,数据是以大端模式存储的,而机器是小端模式,必须进行转换,否则使用时会出问题。一、定义:大端模式(Big Endian):数据的高字节,保存在内存的低地址中;数据的低字节,保存在内存的高地址中。小端模式(Little Endian):数据的高字节,保存在内存的高地址中;数据的低字节,保存在内存的低地址中。例如:16位宽的数0x1234,在不同的模式下,存储方
No space left on device 在向crontab中添加新的记录时,添加完成后保存报错:/var/spool/cron/tmp.XXXXnewi7F: No space left on device从报错原因看,是磁盘满了。使用df -lh查看,发现/var仍然有容量。使用df -i查看,发现/var已经使用了100%。df -i是什么呢?是用于查看文件结点的,Linux下的目录会建立索引结点(inode),用于索引
json格式及json在Python和C/C++中的使用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,因而在工业界得到广泛应用。 json有
C++中使用hiredis hiredis是redis数据库的C接口,目前只能在linux下使用,几个基本的函数就可以操作redis数据库了。1、redisContext* redisConnect(const char *ip, int port) 说明:该函数用来连接redis数据库,参数为数据库的ip地址和端口,一般redis数据库的端口为6379。 类似的提
C++使用curl_easy_setopt()获取内容不完整 最近在代码中发现一个问题,我们的C++框架中,使用Curl来获取数据,但是若数据长度较多时,获取的数据不完整,只有后半部分,推测是由于接受数据的缓冲区设置过小造成的。后来调大了缓冲区,问题还是没有解决。 在我们的代码中,使用curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_memory_callback);函数来
Linux中的定时任务crontab 在Linux中,可以使用crontbab指定定时任务。 使用命令crontab -e即可编辑crontab,在里面添加需要的定时任务。用户的定时任务文件为 /var/spool/cron/用户名 ,crontab -e命令将相当于vim /var/spool/cron/用户名。1、如何写crontab crontab中每一行代表一个任务,每个任务由周期和任务
C++中的case标签 switch case语句在C++程序中使用的较为频繁,但是有很多细节可能平时不会注意到,本文总结一下switch case语句中的case标签。1、case是标签 先来说下标签(label)。如下一段代码:#includeusing namespace std;int main(){ http://www.csdn.net cout<<"hello
C++中那些不常用的关键字 C++有很多关键字,比如if、else、for、continue、break这类常用关键字。还有一些使用不是很频繁的关键字,容易被忘记,这里总结一下,对于笔试面试也许会有帮助。1、explicit 这个关键字对于好的代码是必要的。 使用explicit关键字,将构造函数声明为显式构造函数,以防止隐式的类型转换。 class Test{pu
如何限制对象只能建立在堆上或者栈上 在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。 动态建立类对象,是使用new运算符将对象建立在堆空间
红蓝军对抗 一道智力题:有五个人进行对抗比赛,每次对抗一部分人当红军,一部分人当蓝军。问,至少经过多少次对抗,五个人中的任意两个人都进行过一次红蓝对抗和蓝红对抗? 为满足题意,至少需要出现10种一对一对阵方式,以ABCDE记这五个人,AB表示A扮演红军,B扮演蓝军,BA则刚好相反,则题目转换为:至少需要经过多少次对抗,使得集合{AB,AC,AD,AE,BC,BD,BE,CD,CE,DE}中每
char str[]与char *str的区别 在C语言中,对字符串的操作主要有两种方式,一是使用字符数组,char str[];二是使用字符指针。那么二者有什么区别呢?下面将分述二者的使用,最后进行比较。一、字符数组 使用char str[]定义一个字符数组str,中括号内可以写上数字表示数组大小,也可以不写。如果不写数字,则必须为字符数组提供初始值,以便编译器进行内存分配。可以使用字符串字面值(string
sizeof浅析(三)——求类的大小 sizeof求类的大小和求结构体的大小,有一定的相似性,但又不完全相同,因为类存在这继承和派生、存在着虚函数。1、空类大小对于一个空类,使用sizeof求得其大小为1。2、简单类如下定义一个类,class A{public: int a;private: char b;}; 使用sizeof求这种简单类,结果和求结构体的sizeof是一
sizeof浅析(二) 1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value
sizeof浅析 sizeof是面试笔试中一个常见的考点,这里总结一下关于sizeof的知识。一、sizeof概念 sizeof不是函数,而是操作符。该操作符在C++中的优先级为3,比* 、/、%运算的优先级高,和负号、正号、取地址、指针等运算符同一级别。 sizeof的返回值为size_t,在头文件中被定义为unsigned int类型。 sizeof的作
C++的引用使用 引用是C++中一个很重要的概念。英文为reference,引用定义了对象的一个别名。当对象的值修改时,引用会发生对应的改变;当引用的值发生改变时,被引用的对象的值也发生变化,因为对象和对象的应用操作的是同一地址单元。1、引用的定义 使用int & a = b;即可定义整型变量b的引用a。 (1)由于引用是对象的别名,因此引用在定义的时候就必须初始化。int
软件需求分析文档模版(转载自国家计算机标准和文件模板) 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 软件需求分析的任务是:深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑