- 博客(18)
- 资源 (20)
- 收藏
- 关注
转载 socket开发中INADDR_ANY"的含义是什么?
INADDR_ANY:转换过来就是0.0.0.0,泛指本机的意思,也就是表示本机的所有IP。因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。比如一台电脑有3块网卡,分别连接三个网络,那么这台电脑就有3个ip地址了,如果某个应用程序需要监听某个端口,那他要监听哪个网卡地址的端口呢?如果绑定某个具体的ip地址,你只能监听你所设置的ip地址所在的网卡的端口,其它两块网卡...
2018-12-27 22:32:36 279
原创 内存检查工具valgrind介绍、安装与使用
一、valgrind介绍1、valgrind概述Valgrind是一套Linux下,开放源代码的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下...
2018-12-24 23:44:47 17153 1
原创 GDB的使用
1、介绍:gdb是unix即unix-like下的调试工具。你可随心所欲的运行程序、指定断点处停留、程序停住是可查看状态、可以改变程序讲一个bug的影响修正从而调试其他bug。2、注意事项:必须用-g生成要调试的可执行文件,-g表示带调试信息。g++ -g gdbtest.cpp –o main3、基本调试语法:(1)进入gdb—— gdb/gdb test/gdb test...
2018-12-24 17:02:08 143
原创 GDB定位coredump
这篇文章主要讲GDB和coredump两个方面。一、coredump1、coredump简介(1)、 core,又称coredump文件,准确来讲是Unix/Linux的记录机制产生的一种保存程序崩溃时现场状态的记录性文件。(2)、为何需要这种记录机制?原因很简单,程序在在正常执行的时候当然是皆大欢喜,但是如果程序出现致命性错误难道不要保存一些现场信息已被分析使用吗!!Unix/...
2018-12-24 16:30:50 12103 4
原创 strace的简单用法
Linux下,进程不能直接访问硬件设备。当进程需要访问硬件设备时(读取磁盘文件、接收网络数据等),则必须由用户态切换为内核态,然后通过系统调用来访问硬件设备。strace是跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间)。strace最简单的用法是执行一个指定的命令(过程中,starce会记录和解析命令进程的所有系统调用及这个进程的所有的...
2018-12-24 10:39:22 28308 1
原创 关于makefile的使用
什么是makefile?对于Winodws程序员来说可能很陌生,因为windows的IDE已经把所有的工作都做好了,你只需要点击各个俺舅舅可以了。但是对于一个Unix/Windows程序员来讲makefile则是必须要懂的。结合makefile的大多应用场合我们可以说:会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。...
2018-12-23 14:20:01 190
原创 关于map的几种非常规排序
map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map<string, int>,其中学生姓名用string类型,作为Key;该学生的成绩用int类型,作为value。这样一来,我们可...
2018-12-22 14:15:51 401
原创 关于vector的两个问题(reserve方法&修整过剩空间)
关于vector的问题其实还是很多的。例如初始化、遍历、查找(find函数)、删除(erase和pop_back)、增加(insert和push_back)、清空(clear)、判空(empty)、大小(size)、容量(capacity)在这里就不说了。这次主要说两个问题:vector的内存分配(reserve)和使用“交换技巧”来修正vector过剩的空间/内存。0、关于vector再多说.........
2018-12-21 22:14:05 2662
原创 如何在linux中也能够使用自动类型推导关键字auto?
其实这个问题不应该这样问。是编译器支持auto关键字的而不是linux系统(此处意为直接支持)。所以你应该问如何让自己的g++编译器支持C++11标准。这样的话问题就很简单了。//第一种,直接包含在源程序文件中,如第一行代码所示#pragma GCC diagnostic error "-std=c++11"#include <iostream>using namesp...
2018-12-20 23:02:18 532
原创 typedef struct引起的结构体问题
原来一直认为结构体定义只有struct开头的方法。今天看一本书突然看到typedef struct开头的结构体定义方式吧自己搞的一脸懵逼。既然如此那就看看吧!!先来看看C语言中的结构体变量的三种方法:1、先定义结构体类型,再定义变量注:注意在C语言中定义结构体变量的时候是struct student打头的。struct student{ int num; cha...
2018-12-20 22:22:29 408
原创 C++字符串与C字符串的相互转换问题
第一部分:将 char * 或者 char [] 转换为 string——直接赋值即可转换。第二部分:将string转换为char * 或者char [] 。string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有 3种方法:data()/c_str()/copy(). 1. 调用 string的data()函数(1)以...
2018-12-20 18:45:06 1005
原创 输入输出运算符的重载
运算符重载相信大家都不陌生。运算符函数通常分为两种形式:一类是在类中定义的运算符成员函数,称之为类成员运算符;另一种在类之外定义的运算符重载,通常以该类的友元形式,称之为友元运算符。1、重载输入输出运算符的形式。常见的形式如下:类型中声明友元函数(友元函数必须在类中声明)class Complex{ public: Complex( double r=0,...
2018-12-20 18:01:05 11113
原创 VIM锁屏与解锁
Windows用惯了,使用VIM的时候经常按Ctrl+S的时候被锁住。现在记录一下提醒一下自己。在vim中:使用 CTRL+s 可以锁屏使用 CTRL+q 可以解锁。PS:ctrl+z停止进程后, 用fg恢复。...
2018-12-20 13:51:42 1306
原创 do...while(); 语句在宏定义中的应用。
首先声明一下do...while语句的原型:(注意最后位置需要一个分号,这个特性带来一些好处)do{ /*循环体*/}while(condition);如果你是C++程序员,我有理由相信你用过,或者接触过,至少听说过MFC, 在MFC的afx.h文件里面, 你会发现很多宏定义都是用了do…while(0)或do…while(false), 比如说:#define AFXASS...
2018-12-18 17:29:17 742
原创 IPC之共享内存
一、说明内存共享:两个进程可以直接共享访问同一块内存区域,其最突出优点是效率高,是常用的IPC方式之一。 两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可...
2018-12-10 23:16:15 675
转载 再谈互斥锁与条件变量!(终于搞清楚了啊!!!!!)
1、pthread_cond_wait总和一个互斥锁结合使用。(1)在调用pthread_cond_wait前要先获取锁。(为了防止多个线程同时请求pthread_cond_wait)(2)pthread_cond_wait函数功能:先原子地 1)把调用线程放到等待条件的线程列表上 2)释放指定的锁以供其他线程(生产者)添加任务——>然后就是等待条件变量的变化(任务添加完毕)——&g...
2018-12-09 22:26:45 815
转载 信号量——内核信号量、POSIX信号量、system V信号量
一.什么是信号量?信号量广泛用于进程或线程间的同步和互斥,信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。编程时可根据操作信号量值的结果判断是否对公共资源具有访问的权限。当信号量值大于0时则可以访问;若为0说明资源正被占用,测试的线程将回阻塞(进入睡眠队列中等待被唤醒)。PV 原语是对信号量的操作:一次 P 操作使信号量减1,一次 V 操作使信号量加1。二.信号量的分...
2018-12-09 19:19:24 2606 2
原创 空类型(void *)的简单理解
(void *)是一个指针类型,又名空指针/空类型指针/无类型指针。既然是指针那么它就是一个存地址的变量!32位系统下sizeof(ptr)就是4字节,64位系统下sizeof(ptr)就是8字节(注:这个ptr可以使各种类型的指针,均是如此)。因此判断一个系统位数的最科学方法就是sizeof(ptr)。见程序1。C中规定void类型的指针可以强制转化为任意的其他类型指针使用。原因其实就是前面...
2018-12-08 22:31:18 7649 2
MD5 C++程序算法实现
2022-11-28
互联网大厂面经/面试 智力题整理 后台开发 C++ 春招 秋招 社招 笔记整理 大厂面试整理
2022-11-27
pthread_create传递参数(线程函数传递参数示例)
2022-04-28
protobuf根据DebugString输出字串反解pb对象的实例(C++)
2021-10-21
基于protobuf反射特性的pb、json相互转换的实例程序(C++)
2021-10-21
libcurl使用实例、基于libcurl封装的方便用户使用的easy_curl类 以及该类的使用实例
2021-10-21
解析amr文件时长c++实例代码(包含arm语音文件实例)
2021-10-21
Protobuf使用手册.doc
2020-03-28
VMwareTools-10.2.0-7259539.tar.gz
2018-12-08
libbsd-0.8.3-1.el7.x86_64安装依赖库
2018-09-26
Unix环境高级编程第三版源码与源码配置说明
2018-09-26
valgrind-3.11.0.tar.bz2
2018-08-16
Maven+SpringMVC+Dubbo 简单的入门demo配置
2018-08-15
maven+springmvc+dubbo+zookeeper的生产消费者模型。
2018-08-14
SpringMVC demo
2018-08-13
mysql-connector-java-8.0.11.jar
2018-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人