自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 C共享互斥锁

C共享互斥锁C普通锁当一个地方加上锁后,其他所有想获取锁的都会阻塞基础使用`pthread_mutex_t mutex;``struct timespec time;``localtime(&time)/*使用绝对时间*/``mutex = PTHREAD_MUTEX_INITIALZER` /*后者是一个结构常量,静态初始化*/`pthread_mutex_init(mu...

2018-12-26 22:20:20 579

原创 C语言不定参数以及vsnprintf的使用

不定参数void fun(const char *fmt, ...);va_list ap;va_start(ap, fmt); //读入int x = va_arg(fmt, int); //每次读取相应一个对应类型的值va_end(); //结束以第一个参数fmt为基准获取之后的值,所以需要一个固定的值,但和之后不定参数没有固定关系vsnprintf头文件 #...

2018-12-24 21:33:55 646

原创 epoll学习2

epoll_event ev; /*注册事件,放入ev中*/ ev.data.fd = server.get_sock(); /*消息进来,边缘触发*/ ev.events = EPOLLIN | EPOLLET; epoll_ctl(epfd, EPOLL_CTL_ADD, server.get_sock(), &ev);水平触发LT ev.even...

2018-12-19 23:25:33 164

原创 Linux命令sed的简单使用

1,将含有指定字符串的行删除sed -i '/test/d' test.txt将test.txt文件中带有test的行删除2,将指定字符串替换sed -i 's/Setting/Settings/g' test.txt将test.txt文件中的Seeting全部替换为Seetings,/g代表全局3,在指定行之前或之后添加一行字符串sed -i '10itest'...

2018-12-19 16:41:04 140

原创 epoll的简单使用

结构体:生成的也是一个fd值,最后需要关闭 int epfd = epoll_create(256);会监听放入的socket事件监听:ev.events可以设置监听socket什么动作以及什么模式 epoll_event ev; /*注册事件,放入ev中*/ ev.data.fd = server.get_sock(); /*消息进来,边缘触发*/ ev.ev...

2018-12-18 23:32:44 105

原创 C结构体位域赋值

一道比较 有意思的C基础题typedef struct{ int a:2; int b:2; int c:1;}test;int main(void){ test t; t.a = 1; t.b = 3; t.c = 1; printf("%d, %d, %d\n", a, b, c); return 0;}实际打印的值为1, -1, -1对...

2018-12-17 23:01:27 5229 1

原创 命令行小技巧

1,按住shift,鼠标右键就会有打开powershell的选项,不用什么特殊操作。2,添加鼠标右键打开cmd的选项 :Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCMDHere]"ShowBasedOnVelocityId"=dword:00639bc8...

2018-12-16 16:14:35 128

原创 C语言字符串大小写转换--位运算

今天学习了一种非常有意思的大小写转换方法 A : 1000001 a : 1100001a = A | 32A = a & 95如果将A转换为a的话,可以将A和0100000也就是32进行一次位运算,小写转大写类似。事实上,其他的25个字母也是可以的。这样可以再尽心转换时,不用再先判断大小写了。不过还是要先判断一下是不是字母,而且C++也有了字符串转换方法...

2018-12-08 19:26:19 633

原创 Leetcode(712) 账户合并

1,根据并查集对每一行关联到其父节点(一个int值,相同则表示关联),先以行数作为父节点,相关联的行数的父节点改为同一个。 for (int i = 0; i < n; i++) { f.push_back(i);//初始化每组的父节点为行号 }2,使用map将每个email关联到这一行,实际行数 f...

2018-12-03 23:48:17 359

原创 智能指针的构造、析构、占用空间

在尝试建立对象池的时候,对classA的new、delete进行重构对智能指针share_ptr的构造析构以及空间分析了一下:假设classA大小为N字节1  shared_ptr<classA> b = make_shared<classA>()    这种方式,不会调用class自身的new函数,而是把classA作为一个成员,加入到智能指针中一起进行构...

2018-11-18 21:16:41 1894

原创 堆以及堆排序

1,堆实际就是一个二叉树,满足两个个特点为完全二叉树 父节点的值大于两个孩子的值2,算法思想建立树,以一个数组建立树 data=new T[n+1]; for(int i=0;i<n;i++){ data[i+1] =array[i]; } count=n; for(int ...

2018-10-31 23:56:21 116

原创 快速排序算法及优化

1,简单快速排序,void Math_Qucik_Sort(T array[], int len) { srand(time(NULL)); Quick_Sort(array, 0, len - 1);}template <typename T>void Quick_Sort(T array[], int l, int r) { if (l - r <= 15)...

2018-10-26 00:09:54 366

原创 Web前端CSS伪类选择器

1,li:first-child第一个元素li:last-child最后一个元素li:nth-child(n)第n个元素li:nth-last-child(4)倒数第n个元素 /* 在这里可以以a*n+b输入,比如5n+2 个人感觉是遍历,比如有10个元素,则 n=0---2 n=1---7 n=2---12 2和7则被选中,负数...

2018-10-25 00:21:32 434

原创 C++多线程的简单方法

1,使用std::atomic定义,可以变量在进行简单的运算中保持原子性!std::atomic_int a;std::atomic<int> a;2,使用临界区mutex,可以对一段代码加锁std::mutex m_mutex;m_mutex.lock(){ code body;}m_mutex.unlock()问题:如果出现异常,可能没有进行解...

2018-10-23 23:33:58 158

原创 C和汇编

1,对于汇编语言来说有多个Section比如.data .bss,存储空间不同,读、写、取得权限也不同对于如下程序#include <stdio.h>const int A = 10;//.rodata字段只读,最后这个字段和.text合并,变为只读int a = 20;//GLOBAL声明 .data字段static int b = 30;//对于b来说,在编译时会添...

2018-10-22 23:43:21 155

原创 MMU的好处

1,物理内存是没有访问控制的,通过MMU,可以控制物理内存的访问权限。用户权限和特权权限。2,让每一个进程拥有独立的空间,不同进程间同一个VA(虚拟)映射到不同的PA(实际)地址。对于只读的文件则可能共享相同的物理空间。3,VA--PA可以为内存分配和释放提供方便,比如malloc实际可能不是连续的。4,系统运行多个进程,分配的内存之和可能大于实际可用的物理内存。...

2018-10-22 23:34:35 1351

原创 fstream写入的一个问题

 1,多个函数中创建一个static对象,利用fstream进行日志写入的问题。#include "pch.h"#include <iostream>#include <fstream>#include <string>using namespace std;class Log{public: Log(string filename){ ...

2018-10-21 12:41:32 489

原创 C switch注意事项

1,default并不是必须放在最后!2,case后面必须是常量表达式,因为在编译时需要计算出来3,如果没有遇到break就会一直执行下去4,浮点型不能精确比较相等,所以case后面只能跟精确比较的整形或字符型。...

2018-10-21 09:33:18 277

原创 C 全局变量和局部变量

1,全局变量是定义在所有函数体外的标识符,如果某个函数作用域中用到某个标识符却没有找到定义,则会取查找全局作用域。2,初始化问题,全局变量只可以使用第一种初始化方法。全局变量的初始值要求保存在编译生成的目标代码中,所以必须在编译时计算出来。double a=1.0+2.9;double a=cos(1.0);double b=5.1;double a=b/1.0;3,如果在定义时...

2018-10-20 18:14:57 156

原创 luci工作流程,程序调用

1,luci在openwrt上使用的是uhttpd服务器,了解不多,uhttpd会将lua的默认io修改连接到uhttpd,当调用io.write时会传到uhttpd中!所以想写到web上,直接把html代码调用io.write就可以显示!2,入口在/www文件下,lua的入口程序在sgi/cgi.lua中的run函数,在这里会建立httpdispatch的协程,当协程没dead就会不停地调用...

2018-08-31 22:31:47 2261

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除