
c/c++
99zhenzhen
做个有意思的程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vs2017编译opencv出现 未定义标识符“_m512i“
在用vs2017编译opencv4.3版本的时候,出现了一大堆错误,如下:全部都是在intrin_avx512.hpp,上网查找找到原因是我电脑装的vs2017版本不支持avx512指令编译,后面升级vs版本搞定了。原创 2020-07-05 12:10:02 · 1266 阅读 · 0 评论 -
ida 反编译按F5没有出现伪代码
so和ida的位数不一致导致。原创 2020-06-21 10:56:31 · 4308 阅读 · 0 评论 -
linux socket的IO多路复用简单例子(一)
IO多路复用包括select、poll、epoll,是指通过一种机制,监视多个文件描述符,一旦某个描述符就绪(io描述符就绪一般是读就绪或者写就绪),通知应用程序进行相应的读写操作。对比于使用线程或者进程来接收或者发送信息的socket编程,有更高的性能。直接上代码:linux下的socket编程:server端:/*socket编程用户进程-tcp/udp应用层-ip/ICM原创 2016-06-13 20:01:39 · 1866 阅读 · 0 评论 -
linux socket的IO多路复用简单例子(二)
通过select函数来编写socket通信。原理:集合fd_set是用来存储文件描述符。每次调用select函数时,将fd集合从用户态复制拷贝到内核态。select函数运行完后,然后遍历fd集合,查看哪些描述符已经就绪,对已经就绪的fd进行相应的读写操作。server端:#include #include #include #include #include #inc原创 2016-06-13 20:39:02 · 2489 阅读 · 0 评论 -
linux socket的IO多路复用简单例子(三)
通过poll函数编写socket。原理:poll与select的过程差不多。不同的是select的fd集合有限制,而poll没有。poll使用pollfd结构来存储文件描述符。每个pollfd表示一个被监视的文件描述符,里面包含等待事件、文件描述符、实际发生的事件。等待事件需用户设置,表示期望系统检测文件描述符所发生的事件。实际发生事件是指系统监控后,在回调返回时设置。server端:原创 2016-06-13 20:59:48 · 1236 阅读 · 0 评论 -
linux socket的IO多路复用简单例子(四)
使用epoll函数编写socket。原理:使用一个文件描述符来管理多个描述符。epoll只拷贝一次描述符到内核态,当监控的事件发生时,通过函数回调将fd加入到一个就绪表中。接着,检测某个fd是否在就绪表中,存在的话进行对应的读写操作。epoll引入了一个事件结构体。每一个文件描述符对应一个事件结构体。结构体包含文件描述符,需要监控的事件。server端:#include #inclu原创 2016-06-13 21:25:25 · 825 阅读 · 0 评论 -
c++ mian函数运行完之后,继续执行
c++11提供了atexit函数,其作用是注册函数。当main函数执行完后,继续运行注册的函数。函数特点:1、注册函数的运行是逆序的。就是说先注册A函数,然后注册B函数。运行时,先运行B函数,然后运行A函数;2、同一个函数可以注册多次;#include #include #include using namespace std;void fn1(){ cout <<原创 2016-06-15 11:49:51 · 1186 阅读 · 0 评论 -
c++ 单例模式
class singleton{public: static singleton& getInstance() { static singleton t; return t; }};int main(){ singleton& t = singleton::getInstance(); return 0;}原创 2016-06-16 13:40:55 · 337 阅读 · 0 评论 -
std::string 与 char* 之间的转换
原文地址:https://blog.youkuaiyun.com/u010023457/article/details/41855007std::string 是c++标准库里面其中一个,封装了对字符串的操作把string转换为char* 有3中方法:1:data 如: string str = "Hello"; char *p = str.data(); 2:.c_str 如...转载 2018-07-26 10:39:51 · 6195 阅读 · 0 评论 -
new与malloc的区别,以及内存分配浅析
从函数声明上可以看出。malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自动计算所需要大小。比如:123int *p;p = new int;//返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);或:转载 2016-06-13 10:24:27 · 391 阅读 · 0 评论 -
c++构造函数
c++构造函数有三种:1、默认构造函数;2、拷贝构造函数;3、拷贝赋值构造函数;class Test{};Test a;//默认构造函数Test b(a);//拷贝构造函数b=a;//拷贝赋值构造函数原创 2016-04-08 10:41:25 · 291 阅读 · 0 评论 -
c++时间间隔运算
#include #include #include #include "time.h"#include using namespace std;//strTime格式为 20160212,size表示需减去的天数 20160212-1=20160211string reduceTime(const std::string& strTime, int size)原创 2016-03-01 01:19:07 · 2044 阅读 · 0 评论 -
cmake编译工程列子
理解:cmake是一个跨平台编译器工具,它可以生成各种编译文件。本文主要是将如何通过cmake来编译c++工程。它采取out-of-source(即中间产物与源码分离)方式。在c++中,可以认为cmake是将所有源文件.h和.cpp都放在同一个目录下,来进行编译和链接,最终生成工程。1、工程目录结构payment |-----bin //生成可执行程原创 2015-11-12 19:38:15 · 607 阅读 · 0 评论 -
c++11获取智能指针字符串地址
share_ptr test = make_shared();//获得指针,变成非智能指针Test * t= test.get();unsigned long long ptrVal = (usigned long long)t;string val = to_string(ptrVal);原创 2015-11-02 19:06:33 · 4642 阅读 · 0 评论 -
c++获取字符串时间
string GetCurTime(){ time_t rawtime; struct tm * timeinfo; char buffer [128] = {0}; time (&rawtime); timeinfo = localtime (&rawtime); strftime (buffer, sizeof(buffer),原创 2015-12-04 13:54:53 · 1049 阅读 · 0 评论 -
c++字符串时间加减
#include #include #include #include using namespace std;int main(){tm tm_;time_t t_;char buf[128] = {0};ostringstream timer;timerstrptime((timer.str()).c_str(), "%Y%m%d %H:原创 2016-01-27 01:19:12 · 1659 阅读 · 0 评论 -
值得推荐的C/C++框架和库
值得推荐的C/C++框架和库【本文系外部转贴,原文地址:http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.aspx】留作存档下次造轮子前先看看现有的轮子吧值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork转载 2016-03-06 13:35:48 · 575 阅读 · 0 评论 -
c++ 阻塞队列的实现
#include #include #include #include #include namespace WPAYRTL{templateclass BlockingQueue{public:BlockingQueue() {}~BlockingQueue() {}void offer(std::shared_ptr &e){{s原创 2016-03-10 21:19:55 · 1692 阅读 · 0 评论 -
按字节分块读取文件
注:只是代码模板void writearead(){ int _readSize = 256; char readBuf[_readSize]; try { bool stop = false; while (!stop) { memset(readBuf, 0, sizeof(readBuf) / sizeof(char)); list.clear();原创 2016-03-14 00:39:54 · 983 阅读 · 0 评论 -
c++ 两个字符串加减得到相差秒数
/*@endTime 格式:2016-02-23 00:00:00@startTime 格式:2016-02-23 00:00:00*/double calculateTime(const std::string& endTime, const std::string& startTime){tm tm_s;time_t start;strptime(startTi原创 2016-03-01 01:30:19 · 1881 阅读 · 0 评论 -
c++ vector push_back 出错或者错误
重载拷贝构造函数:class A: thread{public:A() {}A(const A& rhs){ x = rhs.x;};private:int x;};原创 2015-07-16 21:32:55 · 9108 阅读 · 0 评论