自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库Schema模式的理解——模式与数据库的区别

模式与数据库、数据库中的表的关系:1个数据库下,可以有多个模式。 1个模式下,可以有0个或多个表 。   首先我来做一个比喻,什么是User,什么是Database,什么是Schema,什么是Table,什么是列,什么是行,?   我们可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Sche

2018-01-02 20:55:18 20741 7

原创 MySQL基础入门——其他基本操作

索引索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录。这样做会消耗大量数据库系统时间,并造成大量磁盘 I/O 操作。而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找到表中的

2017-08-14 15:50:03 686

原创 MySQL基础入门—SELECT语句详解

SELECT 语句的基本格式为:SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;如果要查询表的所有内容,则把 要查询的列名 用一个星号 * 号表示(实验2、3中都已经使用过),代表要查询表中所有的列。而大多数情况,我们只需要查看某个表的指定的列,比如要查看employee 表的 name 和 age:SELECT name,age FROM emplo

2017-08-07 15:48:54 900

原创 三条命令解决Git 如何删除远程服务器文件同时保留本地文件

有时候会想把github上的文件删除,但是本地仓库里的文件想保留下来该怎么办,只要用三条命令就能完成了git rm --cached filename/-r directorygit commit "xxxx"git push1.删除github文件,本地保留git rm --cached test.txtgit commit -m "delete file"git

2017-08-03 21:47:42 8226

原创 C/C++中输入多组数据方法

如果在刚开始学习算法,做算法题的时候,题上经常会要求输入多组数据,对于刚开始学习的小白来说,可能不知道怎么算输入多组数据,也不知道该怎么处理,刚好想起来,就把方法记录一下怎么算输入多组数据?一般题中要求输入多组数据的意思就是读取数量不定的输入数据(不能确定输入数据的数量),在这种情况下,需要不断读取数据直至没有新的输入为止。方法一:#include int main(){

2017-07-31 10:58:35 61000 3

原创 vim常用命令及操作

整理一下vim常用的一些命令和操作,以便及时翻看查找打开文件进入命令行模式后输入:e 文件路径 可以打开相应文件。移动光标按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。按键说明h左l右(小写L)j下k上w移动到下一个单词

2017-07-27 10:52:23 753 1

原创 编写一个简单的内核模块

#include #include #include static int __init lkp_init(void){ printk(KERN_EMERG"Hello,Kernel!\n"); printk(KERN_ALERT"Hello,Kernel!\n"); printk(KERN_CRIT"Hello,Kernel!\n"); printk(KE

2017-07-26 23:17:36 11210

原创 链表基本排序(逆置、冒泡、选择、插入)

单链表的反序        单向链表的反序图示:                ---->[1]---->[2]---->[3]...---->[n]---->[NULL](原链表)                head   1->next  2->next  3->next   n->next                [NULL]

2017-07-25 21:47:59 804

原创 范围for语句

如果想对string对象中的每个字符进行操作,目前最好的办法是使用C++11新标准提供的一种语句:范围for语句范围for(range for)语句遍历给定序列中的每个元素并对序列中的每个值执行某种操作,其语法形式是:for (declaration : expression) statement

2017-07-25 08:59:02 1747

原创 MySQL导入及导出文件出错ERROR 1290 (HY000)解决方法

今天在学习MySQL时候,想要将文本文件的数据导入到数据库中,却发现一直报错,换了导入文本的路径也还是同样的错误,错误显示ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。然后在网上找解决办法,找的方法在

2017-07-21 22:27:45 24652

转载 内存寻址原理

在做网络安全事件分析的时候,都会遇到内存寻址的知识,例如上次跟大家分享的《 空指针漏洞防护技术》,就涉及到非法访问内存地址的问题。如果这个坎儿迈不过去,你就会迷失在代码中,更无从分析了。今天绿盟科技的安全技术专家就讲讲这个内存寻址的原理,文章分为上下两篇《内存寻址原理》及《内存寻址方式》。随着信息化发展和数据处理能力需求的提高,对计算机硬件产品的性能和容量也提出了新的挑战,要求计算机处理能

2017-07-21 11:33:07 2113

原创 MySQL基础入门—SQL 的约束

约束约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。约束分类听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。在MySQL中,通常有这几种约束:约束类型:主键默认值唯一外键非空关键字:PRIMARY KEYDEFAULT

2017-07-20 10:43:29 482

原创 MySQL基础入门—创建数据库并插入数据

新建数据库首先,我们创建一个数据库,给它一个名字,比如 mysql_ldld语句格式为 CREATE DATABASE ;,(注意不要漏掉分号 ;),前面的 CREATE DATABASE 也可以使用小写,具体命令为:CREATE DATABASE mysql_ldl;创建成功后输入命令 show databases; (注意不要漏掉;)检查一

2017-07-19 11:23:47 1001

原创 MySQL基础入门—SQL介绍及MySQL的安装

数据库和SQL概念数据库(Database)是按照数据结构来组织、存储和管理数据的仓库数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。结构化查询语言(Structured Query Language)简称 SQL,是上世纪 70 年代由 IBM 公司开发,用于对数据库进行操作的语言。更详细地说,SQL 是

2017-07-19 08:47:58 475

转载 chmod函数中的mode_t参数

chmod函数的定义: #include <sys/types.h>#include <sys/stat.h>int chmod(const char *path, mode_t mode)关于mode_t的定义:#ifndef __mode_t_definedtypedef __mode_t mode_t;# define __mode_t_defined#endif__mode_t的

2017-07-17 12:00:48 2643

转载 分段管理机制(段描述符,描述符表,段选择符)

逻辑地址-=>线性地址-=>物理地址前面我们提到了当使用80x86微处理器时,有三种不同的地址: 逻辑地址(logical address):包含在机器语言指令中用来指定一个操作数或一条指令的地址。这个寻址方式在80x86著名的分段结构中表现得尤为具体,它促使MS-DOS或Windows程序员把程序分成若干段。每一个逻辑地址都由一个段(segment)和偏移量(offset或dis

2017-07-17 11:23:04 7882 4

原创 Git常用命令快速一览

安装Git查看系统是否已经装了git$ gitThe program 'git' is currently not installed. You can install it by typing:sudo apt-get install git如果没有装git用下面的命令安装gitsudo apt-get install git安装完成后用下面命令进行全局设置,设置用户名和邮箱地址$ git c

2017-05-22 22:19:50 612

转载 CPU 实模式 保护模式 和虚拟8086模式

从80386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就切换到protected-mode。实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为

2017-05-01 22:47:28 1110

原创 Markdown编辑器一览大全,总有一款适合你

Markdown 是一种简单的、轻量级的标记语法。用户可以使用诸如 * # 等简单的标记符号以最小的输入代价生成极富表现力的文档。  Markdown具有很多优点:写作中添加简单符号即完成排版,所见即所得。让你专注于文字而不是排版。格式转换方便,Markdown 的文本你可以轻松转换为 html、pdf等。可以保存称纯文本  支持Markdown的编辑器太多,功能也不完全一致,有的是用来进行

2017-05-01 16:01:00 7579

原创 Linux内核介绍

单内核与微内核设计之比较单内核就是从整体上把内核作为一个大过程来实现,同时也运行在一个单独的地址空间上,这样的内核通常以单个静态二进制文件的形式存放于磁盘中,而所有内核服务都在这样的一个大内核地址空间上运行,进程管理、内存管理等是其中的一个个模块,模块之间可以直接调用相关的函数。微内核的功能被划分为多个独立的过程,每个过程叫做一个服务器,所有服务器都保持独立并运行在各自的地址空间上,通过消息传递处理

2017-04-09 17:25:44 972 1

原创 Linux操作系统以及内核简介

Linux内核简介Linux操作系统LInux内核Linux内核简介Linux操作系统操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分。这部分包括内核、设备驱动程序、启动引导程序、命令行shell或者其他种类的用户界面、基本的文件管理工具和系统工具LInux内核内核有时候被称作是管理者或者操作系统的核心。通常一个内核的组成有: 负责响应中断的

2017-04-04 16:46:45 2155

原创 Linux操作系统概述

Linux操作系统概述操作系统在整个计算机系统所处的位置操作系统执行C程序的过程一个简单的C程序在操作系统下运行,操作系统的执行过程是怎样到的?文件名:test.c#include <stdio.h>main(){ printf("Hello world\n"); return 0;}用户对这个程序编译并链接gcc test.c -o test形成一个可执行的二进制文件te

2017-04-04 13:13:38 1031

原创 signal信号和sigaction信号处理机制

1. signal信号处理机制可以用函数signal注册一个信号捕捉函数。原型为:#include typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);   signal的第1个参数signum表示要捕捉的信号,第2个参数是个函数指针,表示要对该信号进行捕捉

2016-10-07 18:22:53 1196 1

原创 信号及信号处理

信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某种程序发生了什么事件,还可以给进程传递数据。一、信号的来源 信号的来源可以有很多种试,按照产生条件的不同可以分为硬件和软件两种。1、 硬件方式 当用户在终端上按下某键时,将产生信号。如按下组合键后将产生一个SIG

2016-10-07 18:13:08 790

转载 .c和.h文件的区别(头文件与之实现文件的的关系~ )

一个简单的问题:.c和.h文件的区别学了几个月的C语言,反而觉得越来越不懂了。同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢?2楼:子程序不要定义在.h中。函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误。 3楼:.h只做声明,编译后不产生代码  4楼: 这样做目的是为了实

2016-08-08 16:47:05 1211

原创 链表的基本操作(单链表、双向链表、循环链表)

本周第一次讲座,学长给我们简单的概述了数据结构和算法,然后对链表的一些操作进行了讲解,下来之后,我把原来书上的一些链表的基本操作与链表的逆置,排序等操作结合起来,整理出来链表是由结点构成的,关键是定义结点C语言程序设计上两大特例:①链表节点的定义②递归函数的定义。这两个违反了先定义再使用。一、链表的分类             3.静态链表:各结点在

2016-08-02 21:41:30 1411

原创 简单快速了解gcc(新手入门)

gcc简介gcc工作步骤gcc语法gcc常用选项多源文件编译方法刚安装上Linux系统,安好Vim的时候,还不知道该怎么用它,后来基本上用的很多的就是 vim xxx.c、gcc xxx.c、./aout三步走,gcc的选项很多,全部记住会很难,所以我挑出来一些常用的选项,把这些整理下来(其实这些应该是早早就应该了解的,一直拖到现在,实在不应该)1.gcc简介gcc命令使用GNU推出的基于C

2016-08-01 11:45:31 1324

原创 一看就会,一看就懂,快速上手Git

[TOC] 刚进入小组时,学长帮我注册创建了很多东西,当时看的时候完全看不懂,这是啥啊?后来有一次讲座讲了git的使用方法,其实还是有点不清楚git到底是干嘛用的,怎么用git,现在再看廖雪峰老师的git教程,把其中一些关键的命令,和使用方法记录下来1.安装git这个就比较简单了,先在终端下术输入git,检测一下自己的系统中有没有安装git$ gitThe program 'git' is cu

2016-07-30 16:43:31 830

转载 fork两次不同返回值的实现

【NOTE4】首先必须有一点要清楚,函数的返回值是储存在寄存器eax中的。其次,当fork返回时,新进程会返回0是因为在初始化任务结构时,将eax设置为0;在fork中,把子进程加入到可运行的队列中,由进程调度程序在适当的时机调度运行。也就是从此时开始,当前进程分裂为两个并发的进程。无论哪个进程被调度运行,都将继续执行fork函数的剩余代码,执行结束后返回各自的值。【NOTE5】对于fork来说,父

2016-07-30 15:36:52 2107

原创 Linux兴趣小组暑假留校第四次讲座总结

printf的实现Makefileprintf的实现printf的声明 int _cdecl printf(const char* format, …); _cdecl是C和C++程序的缺省调用方式_CDEDL调用约定: 1.参数从右到左依次入栈 2.调用者负责清理堆栈 3.参数的数量类型不会导致编译阶段的错误对于x86而言,栈向下生长,函数参数从

2016-07-29 17:29:00 649

原创 Linux兴趣小组暑假留校第三次讲座总结

目标文件里有什么进程地址空间共享库运行时库系统调用目标文件里有什么1.目标文件格式现在PC平台流行的可执行文件格式主要是Windows下的PE和Linux的ELF,它们都COFF格式的变种。目标文件就是源代码编译后但未进行链接的那些中间文件,它跟可执行文件的内容与结构很相似,所以一般跟可执行文件格式一起采用一种格式存储。 不光是可执行文件(Windows的.exe和Linux下的E

2016-07-29 16:45:27 1105 2

转载 Linux静态库和共享库

1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过

2016-07-29 11:46:59 565

原创 Linux兴趣小组暑假留校第二次讲座总结

暑假留校第二次讲座,讲了很多东西,听的时候零零散散记下一些关键词,现在把这些整理以下,以免以后忘记编码规范作为一个程序员,必不可少的事儿就是写代码,每个人写代码的风格和形式可能有所不同,我觉得这和一开始接触代码,写代码的时候慢慢形成的习惯,在我看来,写代码就像写字一样,还是要有一定的规范标准,按着这个规范来,写出的代码看起来会好看一些,舒服一些1.代码缩进代码缩进的时候可以手动打出4个空格,或者按T

2016-07-22 09:04:13 816 1

原创 LinuxC编程实战学习——第六章文件操作

第六章的内容基本上看完了,但是感觉还没有完全掌握,一些函数的参数,使用方法,还有宏定义,都记的不是很准,看书的时候也发现很多不会的问题,在这里把书上遇到的问题,以及书上的小知识点记下来(1)atoi函数这个函数的作用是把字符串转换成整型数的一个函数函数原型:int atoi(const char *nptr);函数说明:参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,

2016-07-21 22:42:12 719

空空如也

空空如也

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

TA关注的人

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