
Linuxc学习
ZXF-36691402
这个作者很懒,什么都没留下…
展开
-
extern 'c'
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有转载 2017-08-07 23:48:34 · 187 阅读 · 0 评论 -
Linux--进程间通信(二)
1.为什么进程间要通信数据传输,资源共享,通知事件,进程控制1.1数据传输一个进程需要将它的数据发送给另一个进程1.2资源共享多个进程间共享同样的资源1.3通知事件一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事情。1.4进程控制有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的翻译 2017-07-29 00:14:22 · 174 阅读 · 0 评论 -
Linux--多线通信
1.线程概述1.1什么是线程线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属于一个进程的其他的线程共享进程拥有的全部资源。1.2进程与线程Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者翻译 2017-07-29 00:26:15 · 266 阅读 · 0 评论 -
makefile--工程管应用理器的简单
Makefile工程管理器 已有Addressbook.c main.c Addressbook.h 文件 建立vim Makefile 文件 //M要大写写Makefile具体内容在终端是输入make //相当于在终端输入gcc Addressbook.c main.c Makefile 文件相当于经历了 预处理、编译、汇编、链接这四个过程原创 2017-08-01 21:23:51 · 323 阅读 · 0 评论 -
Linux-网编程络
1.TCP/IP理论协议1.1协议栈Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现;1.2协议介绍对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介绍一般分为四层的Internet模型 第七层:应用层 数据用户接口,提供用户程序“接口”。 第六层:表示层 数据 数据的表翻译 2017-08-01 21:26:49 · 284 阅读 · 0 评论 -
僵尸、孤儿、守护进程
其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给大家分别介绍一下这三种特殊的进程! 1.孤儿进程 如果父进程先退出,子进程还没退出那么子进程将被 托孤给init进程,这是子进程的父进程就是init进程(1号进程).其实还是很好理原创 2017-08-03 23:33:51 · 189 阅读 · 0 评论 -
堆栈和对列
堆栈分为顺序栈和链式栈,对列分为顺序对列和链式对列。栈的数据是先进后出,类似于往杯子里放饼干,然后取饼干的时候将最后放的先取出来。栈要考虑给栈初始化,进栈出栈,去栈顶,判断空否,判断满否,对列也同样要考虑这些。顺序栈顺序列可以将其理解为数组,而链式栈的话利用的是单链表头结点的头插法,顺序对列也可以将其理解为数组,链式对列的话利用的是单链表头结点的尾插法。原创 2016-12-10 19:20:25 · 426 阅读 · 0 评论 -
linux文件系统编程
linux文件系统编程就是学会系统调用中的打开文件,读和写文件,以及如何复制文件,标准IO下要学会读写复制,另外用fgetc和fputc进行复制文件。原创 2016-12-11 19:59:02 · 260 阅读 · 0 评论 -
活用所学知识
在学习的过程中,做到灵活运用所学知识尤其重要,在写程序的时候要熟练的将所学的利用起来,那才是真正的学习。原创 2016-12-13 23:47:48 · 225 阅读 · 0 评论 -
将字符串"I am a student"倒置变成"student a am I"的思想
首先考虑将字符串全部倒过来,然后将tneduts 倒过来变成student 然后 在 一个一个的将其倒置过来,遇到空格的时候倒置,具体是利用快慢指针的方法来做,用快指针指向字符串的末尾,然后再用一个指针指向字符串的开头,然后一个从前往后走,一个从后往前走,当快慢指针重合时即可。然后在主函数中再定义二个指针,然后从student 继续往下走,最后走到I即可。原创 2016-12-14 23:22:33 · 2026 阅读 · 0 评论 -
自学栈和对列
之前已经了解了栈和对列,在再次自我学习的时候发现只有深入了解了链式栈和对列以及顺序栈和对列之后,才能够真正掌握栈和对列。原创 2016-12-15 18:54:12 · 363 阅读 · 0 评论 -
函数指针和指针函数
函数指针和指针函数经常是很多初学者感到疑惑的地方,其实这两个是完全不同的概念。指针函数 指针函数就是返回值为指针类型的函数。函数指针 指针函数的概念其实挺简单的,关键是函数指针,这个概念之前一直是我头疼的地方,每次看函数指针都是一知半解。看函数指针的时候,出现的最多的是typedef和函数指针一起出现:[plain] view pla转载 2017-08-05 23:03:42 · 225 阅读 · 0 评论 -
1.Linux--进程间通信(二)
1.Linux进程间通信概述1.1进程间通信(IPC)工具分类一些复杂的应用程序可能会需要多个进程分工协作来满足所需的功能需求,这就必然涉及到数据在进程之间的共享或交换,称为IPC(Inter-process communication,进程间通信)。 UNIX提供了许多工具(facilities)用于实现进程间通信,这些工具可以分为三类: 通信(Communication):用于翻译 2017-07-23 20:23:23 · 343 阅读 · 0 评论 -
Linux--进程控制
进程控制基础概念1.进程进程是一个具有一定独立功能的程序的一次运行活动进程是一个程序正在执行的实例。每个这样的实例都有自己的地址空间和执行状态2.进程的地址空间 分配给每个进程的内存(memory)由一系列段(segments)组成: text segment(代码段)包含机器语言指令。通常是只读的、共享的。 initialized data segment(翻译 2017-07-23 20:20:34 · 383 阅读 · 0 评论 -
Linux--进程复习
Linux多进程编程1.使用计算机或其它设备时,哪些现象或操作给你的感觉是同时进行或同时发生? 多任务(multitasking)允许多个程序同时运行。多用户(multiuser)允许多个用户同时访问系统,每个用户都可以运行程序。2.进程基本概念2.1什么是程序? //文件定义: 对系统资源进行访问的一个通用接口。 程序就是一个文件,该文件包含了一系列信息翻译 2017-07-22 23:53:50 · 373 阅读 · 0 评论 -
TCP协议三次握手过程分析
TCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RS转载 2017-08-07 23:51:35 · 319 阅读 · 0 评论 -
HTTP协议及过程描述
HTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息。 这个协议已经成为浏览器和Web站点之间的标准。 当我上网的时候底层是如何进行交互的? 当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张转载 2017-08-07 23:53:07 · 296 阅读 · 0 评论 -
Linux--sqlite编程
1.数据库与表 SQLite将每个数据库都保存成一个文件。 数据库中的数据被组织成表的形式。 表由若干拥有相同字段的记录组成。 表可以为空,即拥有0条记录。 字段指的是记录中的数据域,它有不同的类型,可以是一个数值,也可以是字符串。 每个表中可以指定一个或多个字段为主键,表中所有记录的主键的值都不能重复。这种不重复是在插入记录时控制的,即如果向一个表中插入记录时,这个表中已翻译 2017-08-02 23:24:37 · 329 阅读 · 0 评论 -
Linux下c语言知识点整合-
程序设计基础知识1.程序就是系统可以识别的有序指令2.计算机基本结构{存储器+CPU}: 存储器是保存信息的记忆设备,分为主存储器,外存储器,寄存器。3.主存储器:是内存,程序、待处理的数据及处理的结果都在主存储器中,内存以字节为单位对存储单元按顺序进行编址,内存读写速度快,只能在加电时存储数据。4.外存储器: 是长期保存数据的大容量存储器,读写速度慢于内存,可以在不加电的情况翻译 2017-07-06 23:14:57 · 288 阅读 · 0 评论 -
Linuxc语言复习篇指针(-)
C语言程序与指针1.数组构造数据类型之一数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素。数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。在科学计算中,许多重要的应用都是基于数组的。2.一维数组定义:所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。3.数组编译时分配连续的内存,内存的字节翻译 2017-07-08 22:49:52 · 220 阅读 · 0 评论 -
指针复习(二)字符串、数组、函数与指针
指针转向复习二1.计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。 2.我们将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从 0 开始依次增加,对于 32 位翻译 2017-07-08 22:59:01 · 454 阅读 · 0 评论 -
函数复习
函数复习1.函数概述函数(Function)是一段可以重复使用的代码,这是从整体上对函数的认识。C语言本身带了很多库函数,并分门别类地放在了不同的头文件中,使用时只要引入对应的头文件即可。除了C语言自带的函数,我们也可以编写自己的函数,称为自定义函数(User-Defined Function)。自定义函数和库函数没有本质的区别,表现形式和使用方法一样,只是开发者不同而已。参数翻译 2017-07-11 20:40:21 · 313 阅读 · 0 评论 -
Linux c语言之关键字复习
1.static 全局静态变量:作用范围局限于它的源文件,即只有本文件内的代码才可以访问它,变量名在其他文件内不可见 局部静态变量:局限于特定函数,但出作用域并不释放,在函数体内的静态变量的值也能够维持 静态函数:作用范围仅限于它的源文件,即只有本文件内才能够调用,函数名在其他文件不可见 存放位置:程序开始时,存放在全局数据区,结束时释放空间,默认初始化值是0,使用时翻译 2017-07-12 18:16:32 · 427 阅读 · 0 评论 -
Linux内存管理复习
1.野指针那到底什么是野指针呢?怎么去理解这个“野”呢?我们先看别的两个关于“野”的词:野孩子:没人要,没人管的孩子;行为动作不守规矩,调皮捣蛋的孩子。野狗:没有主人的狗,没有链子锁着的狗,喜欢四处咬人。对付野孩子的最好办法是给他定一套规矩,好好管教。一旦发现没有按规矩办事就好好收拾他。对付野狗最好的办法就是拿条狗链锁着它,不让它四处乱跑。对付野指针肯怕比对付野孩子或野狗更翻译 2017-07-12 18:56:14 · 209 阅读 · 0 评论 -
c语言数据结构复习(一)
1.线性表 定义n个数据元素的有限序列,记作(a1, a2,…, an)ai是表中数据元素,n是表长度线性表特点除第一个结点(元素)外,其他每一个结点有一个且仅有一个直接前驱结点。除最后一个结点(元素)外,其他每一个结点有一个且仅有一个直接后继结点。2.顺序表定义和特点将线性表中的元素相继存放在一个连续的存储空间中。 可利用一维数组描述存翻译 2017-07-21 23:24:22 · 929 阅读 · 0 评论 -
Linux--文件系统复习
1.系统调用所有的操作系统都提供多种服务的入口点,程序由此向内核请求服务。这些可直接进入内核的入口点被称为系统调用。2.操作系统提供的服务 进程控制 文件系统控制 内存管理 网络管理 用户管理 3. 为什么用户程序不能直接访问内核提供的服务?在Linux中,为了更好地保护内核空间,程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行翻译 2017-07-22 23:49:38 · 219 阅读 · 0 评论 -
数据结构之二叉树(数组)
二叉树的定义 二叉树(binary tree)由结点的有限集合构成,这个有限集合或者为空集(empty),或者为由一个根结点(root)及两棵互不相交、分别称作这个根的左子树(left subtree)和右子树(right subtree)的二叉树组成的集合。二叉树的五种基本形态二叉树相关术语p二叉树是由唯一的起始结点引出的结点集合原创 2017-08-06 23:43:18 · 359 阅读 · 1 评论