- 博客(16)
- 收藏
- 关注
原创 网络编程
一。协议栈 Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现; 对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介绍一般分为四层的Internet模型。二。TCP/IP协议族 TCP/IP 实际上一个协同工作的通信家族,为网络数据通信提供通路。为讨论方便可TCP/IP 协议组大体上分为三部分:
2017-12-10 21:58:10
121
原创 互斥量和信号灯
1.互斥量: 线程在取出头节点前必须要等待互斥量,如果此时有其他线程已经获得该互斥量,那么该线程将会阻塞在这里.只有等到其他线程释放掉该互斥量后,该线程才有可能得到该互斥量。互斥量从本质上说就是一把锁, 提供对共享资源的保护访问。 2.信号灯: 信号量(又名:信号灯)与其他进程间通信方式不大相同,主要用途是保护临界资源。 进程可以根据它判定是否能够访问某些共享资源。除了用于访问控制外,还可用
2017-12-09 18:19:07
597
原创 进程和线程的区别
1.进程: 进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元; 进程是程序执行时的一个实例,即它是程序已经执行到某种程度的数据结构的汇集。 从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。2.线程: 线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 一个进程由几个线程组成(拥有很多相对独立
2017-12-09 18:05:53
111
原创 进程间的痛信2
1.绑定:SOCK_STREAM 式本地套接字的通信双方均需要具有本地地址,其中服务器端的本地地址需要明确指定,指定方法是使用 struct sockaddr_un 类型的变量,将相应字段赋值,再将其绑定在创建的服务器套接字上,绑定要使用 bind 系统调用,其原形如下:int bind(int socket, const struct sockaddr *address, size_t addre
2017-12-07 20:29:27
115
原创 进程间的通信1
1.定义:进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。2.共享内存:共享内存也可以实现进程间的通信。进程需要可以被其他进程浏览的内存块。希望访问这个内存块的其他进程请求对它的访问,或由创建它的进程授予访问内存块的权限。可以访问特定内存块的所有进程对它具有即时可见性。共享内存
2017-12-07 20:21:52
118
原创 进程
1.定义:进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。2.程序和进程: (1)程序是放到磁盘的可执行文件; 进程是指程序执行的实例。 (2)进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、 静态和可以复制。 进程是暂时
2017-12-06 20:17:33
133
原创 系统调用和标准库函数
一.系统调用 1.所谓系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务。 2.为什么用户程序不能直接访问系统内核提供的服务? 由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内
2017-12-06 19:39:34
581
原创 C语言简单的停车场系统
1.Prak.h头文件,定义一个栈一个队列和一个链表,栈用来停车栈和让路栈,队列用作等候队列,链表用作存储信息。#ifndef Park_#include#define Park_#define filed 100001#define success 100002#define Maxsize 2typedef int myint;struct node1{
2017-11-29 16:19:09
1894
1
原创 结构体,关键字
一.关键字static: 修饰全局静态变量:作用范围局限于它的源文件,即只有本文件内的代码才可以访问它,变量名在其他文件内不可见。 修饰局部静态变量:局限于特定函数,但出作用域并不释放,在函数体内的静态变量的值也能够维持。 修饰静态函数:作用范围仅限于它的源文件,即只有本文件内才能够调用,函数名在其他文件不可见。
2017-11-16 19:18:06
2381
原创 指针预习
1.概念计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。我们将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从 0 开始依次增加,对于 32 位环境,程序能够使用的
2017-11-13 17:02:09
133
原创 预习内容
1.数组下标总是从0开始吗?答:是的,对于数组啊【max】来说,它的第一个和最后一个元素分别为啊【0】和啊【max-1】。2.可以使用数组后面第一个元素的地址吗?答:可以使用数组后面第一个元素的地址,但你不可以查看该地址的值。比如: int i,a[max], j 这句话,不能确定数组后面第一个元素存放的是i还是j。3.数组作为参数传递给函数是,可以通过sizeof得到数
2017-11-10 20:11:59
214
原创 linux基础学习
一:gcc工具链编译指令:1. gcc test.c -o test 生产test可执行文件 上述编译过程是分为四个阶段进行的: (1)预处理:gcc-E test.c -o test.i 可以输出test.i文件中存放着test.c经预处理之后的代码 (2)编译:gcc-S test.i -o
2017-11-08 16:35:17
208
3
原创 linux常用命令
linux常用命令1.diff:用于两个文件之间的比较,并指出联合文件之间的不同,使用权限是所有用户。 格式: diff【options】 源文件 目标文件 options主要参数: -a: 将所有文件当作文本来处理。 -b: 忽略空格造成的不
2017-11-06 13:44:02
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人