自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 赋予user用户root权限

在网上看了些资料,大多数都是说用sudo,或者改/etc/下面相关文件是user拥有root的权限,再或者使用chown root ,chmod +s;但这些方法最终在ps命令下看到的程序还是root权限,此时即使在user下调用root权限才能使用的api也可以正常使用,不会再报Operation not permitted错误。起因是最近在完成一个客户需求时,需要在user下拥有root的权限。4.4.94内核具体在ns_capable_common函数。3.10内核为ns_capable函数。

2023-05-31 17:20:17 295

原创 mips 交叉编译openssl

mips Floating point exception openssl

2022-05-11 17:49:03 577

原创 pthread_create创建线程时遇到Resource temporarily unavailable

在mips开发芯片上创建线程过多时遇到Resource temporarily unavailable,虽然芯片的虚拟内存是2G,但实际的系统内存是32M或64M。使用ulimit -a 可以查看系统一些资源信息:ps -T查看线程数量,并没有达到process的限制,同时线程数*8M也是远小于2G,虚拟内存会映射到物理内存,所以原因还是物理内存小了,因物理内存受芯片限制,所以通过以下两种方法解决报错问题:1、ulimit -s 2048 改变每个线程栈的大小为2M2、开启交换分区 echo

2020-12-31 09:13:12 2434

原创 C++三种继承方式

一、公有继承(public)基类成员对派生类的可见性为:基类的公有成员和保护成员可见,基类的私有成员不可见。 基类成员对派生类对象的可见性为:基类的公有成员可见,保护成员和私有成员不可见,即通过派生类的对象只能访问基类的public成员。 所以,在公有继承时,派生类的对象可以直接访问基类中的公有成员,派生类的成员函数可以直接访问基类中的公有成员和保护成员。二、私有继承(private)...

2019-02-13 10:17:15 1289

原创 Mysql

 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。  MySQL是一种关联数据库管理系统(RDBMS),关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 RDBMS = manage + databases;Mysql 由 databases组成,database由tables组成,对于...

2018-08-18 13:42:41 112

原创 C++类的虚函数

1、在说虚函数之前先说说一个程序的内存的问题,这在我的另一个笔记中有提,主要分:代码段,数据区,堆,栈。C++中,代码段存放代码及常量,主要是程序中的函数包括(普通成员函数,类中的函数(虚函数、普通函数、静态成员函数))而类的虚表中就是存放这些虚函数的地址。类只声明的时候是不占用内存的,当声明第一个实例的时候,会生成类的函数,及以后所有的实例调用类的成员函数的时候都会调用这些函数的...

2018-08-18 10:49:09 1474

原创 重载、重写与隐藏

1、重载(overload)(1)全局函数的重载,调用区别是参数的个数、类型及有无const修饰(2)同一个类中函数的重载,区别于全局相同。2、重写(override)(覆盖)(基类、派生类之间的虚函数)这个概念涉及到virtual,虚表及virtual指针。类方法的重写,基类的此方法必须有virtual修饰,派生类可有可无。 3、隐藏 (基类与派生类的概念)当基类...

2018-08-18 10:05:18 190

原创 常见排序方法

#include <cstdio>#include <iostream>using namespace std;const int MAXSIZE = 100;void MySwap(int &a,int &b);void BubbleSort(int *a,int len);void Print(int *a,int len);/*冒泡...

2018-08-16 13:55:14 134

原创 同步IO与异步IO

一、什么是IO操作即对系统中资源的读、写。分为两个阶段:(1)      准备阶段,例如输入操作时要等待数据已经就绪,输出操作时缓冲区中有空间可供使用;(2)      数据拷贝阶段,例如输入操作时将数据从内核复制到用户缓存,输出操作时将用户缓存复制到内核。二、linux下的IO模型(1)阻塞IO模型(2)非阻塞IO模型(3)IO复用模型(4)信号驱动IO模型...

2018-08-12 10:39:52 111

原创 jsoncpp

一、在ubuntu下使用Json.cpp,1、包括头文件 <json/json.h>2、-ljson二、Json(JavaScript Object Notation )是一种轻量级的数据交换格式。简而言之,Json组织形式就和python中的字典, C/C++中的map一样,是通过key-value对来组织的,key是任意一个唯一字符串,value可以是bool,int,...

2018-08-11 18:59:53 165

原创 线程

1、线程线程时进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点运行中必不可少的资源(程序计数器,一组寄存器和栈),和同属一个进程的其他线程共享进程的所有资源。Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者共享全局变量、文件描述符、信号句柄和当前目录状态。进程可以看...

2018-08-11 11:35:36 113

原创 联合体union及结构体struct的大小与对齐方式

对齐方式是4或8字节union:32位机是以四个字节对齐如union{long i;int k[5];char c;}  20个字节64位机8字节或4字节对齐(出现long或double等8字节则8字节对齐)union{long i;int k[5];char c;} 24个字节;union{int i;int k[5];char c;} 20个字节;union{int i;i...

2018-08-10 21:29:14 596

原创 static、const

static:(1)当static声明全局变量时,表示这个全局变量只能用于本文件,而不能被别的文件引用,即使使用了extern来扩展使用域;全局变量和静态全局变量都存放在静态存储区(数据区)中,都是在编译时分配内存,只是作用域不同。(2)当static声明局部变量时(即函数体内的static),表示这个局部变量在静态存储区,在函数调用结束后其占用的存储空间不释放仍保留原值,且静态局部变量在编...

2018-08-09 09:29:58 98

翻译 C++中的类型转换

1、static_cast< >();用于数值类型之间的转换及有一方是void* 指针间的转换int n = static_cast<int>(9.9); int * p = static_cast<int *>(malloc(sizeof(int)*10));2、reinterpret_cast<>():用于任意两种指针之间的转换及指针与数...

2018-07-22 17:29:06 102

原创 数据存储区

栈        (高地址) 堆 数据区 代码段(低地址) 代码段:存储执行代码和常量数据区:静态变量和全局变量堆       :malloc /free 和new/delete 对其操作(指针存在栈区指向堆区)栈       :局部变量(形参、临时变量等)注:sizeof测的是栈的空间,不测数据区的,如类中的静态变量预处理(preprocess...

2018-07-19 09:47:27 396

原创 C++中的模板

C++中的模板大致分两类:函数模板和类模板。模板的框架都是在函数前或者类前写上   template <typename T1,typename T2,……>模板的实质为:将数据类型当参数传递,实现数据类型与算法相分离。函数模板:函数模板----->模板函数函数模板:其调用的方式有隐式调用,即由编译器自己推导,和声明类型如MySwap<int>(a,b...

2018-07-18 22:30:30 233

原创 线性表

线性表(List):零个或多个数据元素的有限序列。有两种存储结构:顺序存储结构和链式存储结构。顺序存储结构:用一段地址连续的存储单元依次地存储线性表的数据元素。查找的时间复杂度O(1),删除和插入的时间复杂度为O(n)。优点:无须为表示表中元素之间的逻辑关系而增加额外的存储空间;可以快速的存取(存每次都在最后位置存)表中任一位置的元素。缺点:插入和删除需要移动大量元素;当线性表长度变化较大...

2018-07-17 15:45:51 127

原创 程序设计入门

程序设计 = 数据结构 + 算法一、数据结构1、数据元素:是组成数据的、有一定意义的基本单位。如:人2、数据项:一个数据可以由若干个数据项组成,根据自己的需要,数据项是不可分割的最小单位。如:如人的耳、鼻、嘴等。3、数据对象:是性质相同的数据元素的集合,是数据的子集。4、数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据结构又分物理结构与逻辑结构4.1、逻辑结构:是指...

2018-07-17 10:48:06 115

原创 virtual总结

1.虚基类:继承时,用于多继承时,B->A,C->A,D->B,C,此时D类中相当于继承两个相同的成员都是来自于A,此时class B:virtual A  ;class C:virtual A;class D;public B,public C;即当多个派生类来自相同基类同时作为一个子类的父类时;此时只保留一个副本2.虚函数:继承时,在子类中存在与父类相同的成员时,此时在父类中...

2018-06-10 21:32:09 151

原创 对上几周学习队列、链表、树的回顾

最近几周学习了C语言中的队列、链表、树,在这个过程中对结构体、指针的理解加深了不少。链表及树在内存中都是通过指向结构体的一个指针来找到的,自己在写程序的时候遇到了一个不小的问题,及二级指针的运用出了问题,导致即使运行通过,在插入,删除,显示的时候都报段错误。在遍历树的时候,自己想的方法很复杂,而且容错性不好,在查资料的时候发现队列的运用很好的解决了问题。

2017-12-12 20:31:01 104

原创 初学指针

这周末在学习指针前,大致的看了一下C和指针这本书,了解了左值与右值得概念,左值即地址,右值即内容。定义一个指针需要类型*,用到指针的时候,指针指存储的地址,*指针指存储地址里的内容,指针占空间为四个字节,有些需要用全局变量解决的问题可以用指针解决,然后进一步深入的是指向指针的指针,**pi表示。数组会退化为指针,如*pi【】和**pi,a【】和*a。一维数组a【】中,a指向a【0】的值。此外还有s

2017-11-26 22:10:05 128

原创 关于序列点的思考

作为C语言的初学者,这周学到了与&&和非||,然后就了解了一些关于序列点的知识,表达式中当优先级遇到序列点时,优先考虑序列点,比如&&和||,与前面有0时,后面的就不再考虑,或前面有1时,后面的部分也就不再考虑,因为是初学者,所以有些片面,有错误望前辈们指出

2017-11-13 22:29:59 154

空空如也

空空如也

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

TA关注的人

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