- 博客(12)
- 收藏
- 关注
原创 TCP/IP理论基础
Linux的优点之一就是在于它丰富而稳定的网络协议栈、对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介绍一般分为四层的Internet模型。.TCP/IP 实际上一个协同工作的通信家族,为网络数据通信提供通路。为讨论方便可TCP/IP 协议组大体上分为三部分: 1、Internet 协议(IP) 2、传输控制协议(TCP)和用户数据报协议(UDP)
2017-12-10 20:20:25
261
原创 线程编程
线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程有自己的堆栈和局部变量,但线程没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。线程 的优点:和进程相比,它是一种非常“节
2017-12-09 21:59:25
201
原创 再探进程间通信
信号本质:在软件层次上是对中断机制的一种模拟。信号来源:硬件来源如按下键盘,软件来源如一些系统函数:kill.raise,alarm等。信号种类:可靠信来说分可靠信号和不可靠信号,与时间的关系上分实时信号和非实时信号。信号的安装:signal()和sigaction().信号集操作:sigemptyset函数,sigfillset函数,sigaddset函数等。消息队列:POS
2017-12-07 21:52:16
153
原创 进程间通信方式初探
进程间通信就是在不同进程间传播或价换信息。进程间通信的方法:管道,消息队列,信号量,共享内存,套接字。通信的目的:数据传输,共享数据,通知事件,资源共享,进程控制。管道分为: 无名管道,有名管道。管道的特点:半双工的,只能用于父子进程,熊的进程间,并且单独构成一个独立的文件系统,还可以进行数据的读入写出。建立管道的函数:pipe函数。需在调用fork前调用。无名管道的应用:
2017-12-07 20:59:12
148
原创 进程控制
进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。进程与程序的区别:程序是放到磁盘的可执行文件,进程是指程序执行的实例,进程是动态的,程序是静态的。进程与程序组成不同。进程与程序的对应关系。创建: 每个进程都是由其父进程创建,进程可以创建子进程,子进程又可以创建子进程的子进程运行: 多个进程可以同时存在,进程间可以通信,撤销: 进程可以被撤销
2017-12-06 22:24:46
160
原创 文件编程
所谓系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务。由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。系统调用并不是直接与程序员进行交互的,它仅仅是一个通过软中断机制向内核提交请求,以获取内核服务的接口。在实际使
2017-12-05 22:28:58
169
原创 结构体与链表
结构体;struct 结构体名{ 成员表列; }变量名表列;结构体成员的表现形式:结构体变量.成员名(*p).成员名p->成员名其中->称为指向运算符。用结构体建立链表:struct student{ int num; float score; struct student *next ;}; 其中成员num和score用来存放结点中的有用数据(
2017-11-26 22:21:41
465
原创 指针数组与数组指针
一个数组的元素值为指针则是指针数组。 指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。 指针数组说明的一般形式为: 类型说明符 *数组名[数组长度] 其中类型说明符为指针值所指向的变量的类型。 例如: int *pa[3]; 二维数组形参实际上是一维数组指针变量, 即 int x[ ][10] int
2017-11-16 22:07:52
146
原创 一维数组与二维数组
1.一维数组的定义格式为:类型说明符 数组名[常量表达式];在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。常量表达式中可以包括常量和符号常量,但不能包含变量。C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。在定义数组时对数组元素赋以初值。例如:int a[10]={0,1,2,3,4,5,6,7,8
2017-11-13 22:26:45
364
原创 初识数组与函数
1.字符串与数组的区别数组元素是任意类型没,字符串是一种特殊的数组,他有确定的长度的规则2.array_name 与&array_name 的区别前者是指向数组第一个元素的指针,后者指向整个数组的指针3.null总是定义为0吗不是定义为0.就是被定义为"(void *)0"4。最多可以使用几层指针一个指针最多可以包含12层简介引用5.函数指针与指针函数函数指针:
2017-11-10 21:36:12
282
原创 vim里的一些实用工具
今天学到了一些工具,有gcc,Makefile,gdb,shell.gcc 是 一个编译器,格式为gcc test.c -o test。有四个处理阶段,1预处理gcc -E test.c -o test.i,2编译为汇编代码gcc -S test.i -o test.s,3 汇编gcc -c test.s -o test.o,4连接gcc test.o -o test。gcc常用指令-c
2017-11-08 18:52:06
249
原创 初识linux
第一次接触了liunx系统,学到了一些目录结构和常用命令。一些必要的目录结构有 /: 根目录,只存放目录,不存放文件。/bin:可执行二进制目录文件。/boot: 存放linux系统启动时使用的文件。/dev: 设备文件目录。/etc: 操作系统的配置文件目录。/home: 系统默认的用户目录。/root:系统管理员目录 。/sbin: 放置系统管理员使用的可执行命令。/usr:应用程序
2017-11-06 11:04:45
264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人