9 ZHM977863924

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 9w+

IEEE802.11协议基础知识

转自:https://blog.csdn.net/MyArrow/article/details/9306961802.11管理功能–用户接入过程      STA (工作站)启动初始化、开始正式使用、AP 传送数据幀之前,要经过三个阶段才能接入:      (1) 扫描(SCAN)       (2) 认证(Authentication)       (3) 关联(Associ...

2018-08-19 00:15:38

Ubuntu不能利用ssh进行远程连接的解决方案及其解决过程中出现的问题

Ubuntu不能利用ssh进行远程连接的解决方案及其解决过程中出现的问题

2015-11-18 15:55:31

用户不在sudoers文件中解决方法以及sudoer文件修改错误后的恢复方法

本文解决了用户不在/etc/sudoers文件中导致用户不能获取root权限的问题以及sudoer文件修改错误后的恢复方法

2015-11-18 15:04:32

getline(),cin.getline(),cin.get()区别

C++中有两个getline函数,这两个函数分别定义在不同的头文件中1、getline()是定义在头文件中,功能是取一行字符串,读到换行符r结束,并且抛弃换行符,如果需要读取字符,则接着下一行读取。       getline(cin,str);第一个参数是输入流对象,第二个参数是字符串对象,该函数将istream参数作为返回值。如while(getline(cin, line))

2015-08-16 20:43:09

C++内存管理篇整理

C++内存管理篇整理内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由

2015-08-16 12:14:14

TCP/IP协议头部结构体

TCP/IP协议头部结构体(网摘小结)TCP/IP协议头部结构体(转) 网络协议结构体定义// i386 is little_endian.   #ifndef LITTLE_ENDIAN   #define LITTLE_ENDIAN   (1)   //BYTE ORDER   #else   #error Redefine LITTLE_ORD

2015-07-12 17:11:34

C++ 常见崩溃问题分析

一、前言从事自动化测试平台开发的编程实践中,遭遇了几个程序崩溃问题,解决它们颇费了不少心思,解决过程中的曲折和彻夜的辗转反侧却历历在目,一直寻思写点东西,为这段难忘的经历留点纪念,总结惨痛的教训带来的经验,以期通过自己的经历为他人和自己带来福祉:写出更高质量的程序; 由于 C 和 C++ 这两种语言血缘非常近,文本亦对 C 编程语言有借鉴作用; 二、C++ 

2015-07-12 10:27:59

c++中 类数据成员的定义、声明总结

C++为类中提供类成员的初始化列表类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员2.进入构造函数后在构造函数中执行一般计算  1.类里面的任何成员变量在定义时是不能初始化的。  2.一般的数据成员可以在构造函数中初始化。  3.const数据成员必须在构造函数的初始化列表中初始化。  4.static要在类的定义外面初始化。

2015-07-12 10:14:05

C/C++变量命名习惯

C_C++变量命名规则变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则: 1、 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。2、 第一个字母必须是字母或者下划线开头。3、 不能使用C++关键字来命名变量,以免冲突。4、 变量名区分大小写。 变量命名规则:一、    

2015-07-09 09:02:09

C++的内存管理

这篇文章是我在学习高质量C++/C编程指南中的第7章"内存管理"后的一篇笔记,之前我也写过相关的文章指针以及内存分配,但我感觉那篇还不是很好,这篇我很把它更完善一些一.内存的常见分配方式  1. 从静态区分配,一般是全局变量和static类型变量  2.从栈区分配内存,一般是局部的变量,会随着所在函数的结束而自动释放  3.从堆中分配,一般是使用手动分配,使用mallo

2015-07-09 08:55:12

Linux 用户和组文件解释(总结)

一、用户文件:/etc/passwd[root@pinfun6 ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash 1 2 3 4 5 6 7 | | | | | | | | | | | | | |--用户默认使用的SHELL | | | | | |

2015-05-17 10:38:36

详解 /etc/group

Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件,Linux /etc/group文件相对另外两个文件内容相对较少,这里对这一文件进行以下分析。用户组的所有信息都存放在/etc/group文件中将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组

2015-05-17 10:15:22

详解/etc/shadow

Linux中 /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由 pwconv 命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开,文件的每行是8个冒号分割的9个域,格式如下: username: passwd: lastchg: min: max: warn: inactive: e

2015-05-17 09:52:16

详解Linux /etc/passwd文件

在Linux /etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。这个文件对所有用户都是可读的。但是Linux /etc/passwd文件中都有些什么内容呢?它的内容类似下面的例子:#cat/etc/passwdroot:x:0:0:Superuser:/:daemon:x:1:1

2015-05-17 09:49:27

C++中如何修改const变量

一、结论声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const。C++ const 修饰符,表示常量,即如果以后保证不会修改则声明为const,否则若要修改,那一开始为什么还要声明为const呢?根据C++标准,对于修改const变量,属于:未定义行为(指行为不可预测的计算机代码),这样一来此行为取决于各种编译

2015-05-04 18:18:51

排序算法小结

从以下几个方面来比较排序算法:1. 算法的时间和空间复杂度2. 排序的稳定性3. 算法结构的复杂度4. 参加排序的数据规模排序的稳定性:稳定排序方法: 插入排序、冒泡排序、二路归并排序、基数排序是稳定排序算法;不稳定排序方法: 选择排序、谢尔排序、快速排序、堆积排序是不稳定排序算法。算法复杂度比较: 

2015-04-27 10:21:06

C++内联函数与宏定义的区别

用内联取代宏:1.内联函数在运行时可调试,而宏定义不可以;2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。文章(一)内联函数与宏定义  在C中,常用预处理语句#define来代替一个函数定义。例如:    #d

2015-04-26 22:04:40

海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序

1、从set/map谈到hashtable/hash_map/hash_set   稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为基础准备。一般来说,STL容器分两种:    序列式容器(vector/list/deque/stack/queue/heap),        关联式容器。关联式容器又分为set(集合)和map(

2015-04-20 16:05:40

5亿个数找中位数

找中位数最容易想到的方法就是,先对序列进行排序,取中位数,然而5亿个数要想全部读入内存需要将近2GB空间。一种想法是采用外部排序的方法,在排序的过程中记录数据个数,找到中位数。首先采用hash() % 100,把数据分到100个文件中,然后对每个文件分别在内存中进行快速排序,再将100个小文件进行合并,并在合并过程中寻找中位数,时间复杂度是O(nlogn) 另外一种方法是,

2015-04-20 16:05:03

右左法则----复杂指针解析

首先看看如下一个声明: int* ( *( *fun )( int* ) )[10]; 这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。 C/C++所有复杂的声明结构,都是由各种声明嵌套构成的。如何解读复杂指针声明?右左法则是一个很著名、很有效的方法。不过,右左法则其实并不是C/

2015-04-02 14:45:30

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!