自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tangduobutian的博客

C/C++、数据结构、Linux知识点小结

  • 博客(19)
  • 收藏
  • 关注

原创 HTTP协议介绍

 这篇博客主要介绍一下HTTP协议(HTTP 1.0 & HTTP 1.1)的相关内容:1.特点(HTTP 1.0):        · 客户/服务器模式(C/S)        · 简单快速:HTTP服务器的程序规模小,因此通信速度快        · 灵活:HTTP允许传输任意类型的数据对象        · 无连接,每次连接只处理一个请求:服务器处理完客户的请求并...

2018-09-15 23:54:19 2380

原创 Shell基础——符号

基本概念Shell定位    · Shell是一个用C语言编写的程序,是用户使用Linux的桥梁;Shell既是一种命令语言,又是一种程序设计语言。    · Shell是指一种应用程序,一种和内核沟通的外壳应用程序的统称,这个应用程序有时提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell & Bash    · Shell如果叫做媒婆,Bash就是王婆...

2018-07-19 11:54:36 293

原创 Linux——系统文件I/O

本文主要介绍一下用系统接口进行文件的访问:首先来看代码:hello.c写文件: #include <stdio.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h>...

2018-07-19 09:26:40 211

原创 正则表达式

概念    · 正则表达式是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配的目的    · 正则表达式目前被集成到了各种文本编辑器/文本处理工具当中应用场景    · 验证:表单提交时,进行用户名密码验证    · 查找:从大量信息中快速提取指定内容    · 替换:将指定格式的文本,进行正则匹配查找,找到之后进行特定替换基本要素    ...

2018-07-06 17:20:51 267

原创 Linux第一个小程序——进度条

行缓冲区概念首先来看几个代码: #include <stdio.h> int main() { printf("hello Makefile!\n"); sleep(3); return 0; } 现象: #include <stdio.h> int mai...

2018-05-08 18:22:15 176

原创 Linux项目自动化构建工具——make/Makefile

1.背景    · 会不会写Makefile,从侧面说明了一个人是否具备完成大型工程的能力。    · 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作。    · Makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,...

2018-05-08 17:20:15 1543

原创 Linux调试器——gdb使用

 1.背景    程序的发布方式有两种,debug模式和release模式    Linux gcc/g++出来的二进制程序,默认是release模式    要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项 2.开始使用    gdb binFile   退出:ctrl+d 或quit调试命令:    list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行...

2018-05-08 15:18:56 351

原创 Linux编译器-gcc/g++使用

1.背景    程序处理过程:        1.预处理(进行宏替换)        2.编译(生成汇编)        3.汇编(生成机器可识别代码)        4.连接(生成可执行文件或库文件) 2.gcc如何完成    格式:gcc [选项] 要编译的文件 [选项] [目标文件]预处理(进行宏替换)    预处理功能主要包括宏定义、文件包含、条件编译、去注释等    预处理指令是已#号开...

2018-05-08 15:01:22 302

原创 Linux——进程介绍

一、进程1.基本概念    课本概念:程序的一个执行实例,正在执行的程序等     内核观点:担当分配系统资源的实体描述进程——PCB    进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合    课本上之所以称之为PCB(process control block),Linux操作系统下的PCB是task_structtask_struct——PCB的一种(是Linux内核...

2018-04-25 09:49:55 711

原创 进程间通信之消息队列

消息队列上篇文章已经介绍过了管道(http://blog.csdn.net/tangduobutian/article/details/79638121)今天来看下进程间通信的另一种方式——消息队列。首先来看下消息队列的一些基础概念:1.消息队列提供了从一个进程向另一个进程发送一块数据的方法2.每个数据块被认为有一个类型,接收者进程接受的数据块可以有不同的类型值3.消息队列也有管道一样的不足,就是...

2018-04-16 20:29:51 189

原创 Linux——信号小结2

    之前的博文已经介绍了信号的一些基本概念(https://blog.csdn.net/tangduobutian/article/details/79812540),这篇博文主要介绍一下捕捉信号、可重入函数、竞态条件等。1.捕捉信号1)内核如何实现信号的捕捉    如果信号的处理动作是用户自定义的函数,在信号递达时就会调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过...

2018-04-16 20:20:59 208 1

原创 Linux——信号小结1

为了理解信号,首先来看一个场景:1.用户输入命令,在shell下启动一个前台进程2.用户按下Ctrl+C键,此时会产生一个硬件中断3.如果CPU当前正在执行这个进程的代码,则改进程的用户与空间代码暂停执行,CPU从用户态切换带内核态处理硬件中断4.终端驱动程序将Ctrl+C键解释成一个SIGINT信号,记在该进程的PCB中(也可以说发送了一个SIGINT信号给该进程)5.当某个时刻要从内核返回到用...

2018-04-04 15:16:47 189

原创 Linux编辑器——vim使用

    vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性,例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、mac os、windows。1.vim的基本概念    目前我们掌握以下三种模式就可以了:命令模式(command mode)、插入模式(Insert mode)和底行模式(last ...

2018-03-28 10:02:16 160

原创 Linux权限介绍

Linux下有两种用户:超级用户(root)、普通用户:    超级用户:可以在Linux下做任何事情,不受限制    普通用户:在Linux系统下做有限的事情    超级用户的命令提示符是“#”,普通用户的命令提示符是“$”命令:su [用户名]功能:切换用户例如:要从root用户切换到普通用户user,则使用su user,要从普通用户user切换到root用户则使用su root(root可...

2018-03-27 22:42:00 220

原创 Linux下基本指令

之前我们已经介绍过Linux的目录(https://blog.csdn.net/tangduobutian/article/details/79638121),今天我们来看一下Linux下的一些基本指令介绍:1.ls指令语法:ls[选项][目录或文件]功能:对于目录,该命令列出该目录下所有的子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:    -a:列出目录下的所有文件,包括以 . ...

2018-03-27 20:44:40 232

原创 进程间通信之管道

进程间通信之管道既然要介绍进程间通信,首先来看看什么是进程间通信:1. 进程间通信的实质:是让两个毫不相干的进程看到同一份资源2. 进程间通信的目的:1)数据传输:一个进程需要将它的数据发送给另一个人进程2)资源共享:多个进程共享同样的资源3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件4)进程控制:有些进程希望完全控制某些进程的执行,此时控制进程希望能够拦截另一...

2018-03-21 20:31:17 289

原创 Linux下vim的配置和gcc/g++,gdb的简单安装

注:本文所介绍的方法仅在CentOS 6.5版本上进行了测试,不同版本可能出现差异,还请读者自行验证,另外本文仅介绍指令安装方法,下载安装包进行解压缩安装不做讨论。1. 一般来说,我们下载的CentOS会自带gcc,所以安装之前我们首先要查看一下自己的系统中是否已经存在gcc,如下图: 此时显示我的系统中已存在gcc;若检测到系统中不存在gcc,则需要在保证你的Linux连网的情况下,

2017-11-27 17:45:21 885

原创 Linux目录介绍

Linux目录类似于一个树,最顶层是根目录,根目录是Linux文件系统的入口,所有的目录、文件、设备都在根目录之下。根目录下包括: 以下对这些目录进行详细介绍:(1)/bin:存放系统最常用最重要的命令,以独立的文件形式存在,此目录中的文件都是可执行的并且是普通用户都可以使用的命令,如:ls、cp、mkdir等命令。(2)/boot:Linux的内核级引导系统的程序所需要的文件都存

2017-11-27 15:56:00 201

原创 c语言结构的存储分配小结

结构在内存中是如何存储的呢?首先来看一个例子:可见上面这个结构体占用了内存的16个字节,那么具体在内存中是如何存储呢?请看以下详解:上图的存储方式就涉及到结构体内存的对齐规则:1.第一个成员在与结构体变量偏移量为0的地址处;2..其他成员要对齐到某个对齐数的整数倍的地址处(对齐数=编辑器默认的一个对齐数与该成员大小的较小值,VS中默认对齐数为8,gcc中的默

2017-07-20 22:15:10 423

空空如也

空空如也

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

TA关注的人

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