自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 TCP协议中的三次握手和四次挥手(图解)

原文来自:http://blog.csdn.net/whuslei/article/details/6667471/建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删了,大家可以比较下,对比理解效果更好。这么久

2017-08-01 21:09:20 269

原创 标准IO

库函数: 库函数为了实现某个功能而封装起来的API集合,提供统一的编程接口,更加便于应用程序的移植,是编程语言或者应用程序的一部分。标准IO操作对象:FILE流指针,每个被使用的文件都在内存中开辟一个区域,用来存放文件的有关信息,这些信息是保存在一个结构体类型的变量中,该结构体类型是由系统定义的,取名为FILE。(在libio.h中定义)标准IO特点:(1)对系统调用做了一层封装,

2017-07-30 15:49:40 502

原创 文件IO

1、系统调用:用户空间进程访问内核的接口;把用户从底层的硬件编程中解放出来;极大的提高了系统的安全性;使用户程序具有可移植性;是操作系统的一部分。2、在Linux中,我们可以通过open系统调用打开一个文件,可以获得一个文件描述符(fd),这个fd表示打开的文件,我们可以read系统调用来读文件,可以通过write系统调用来写文件,通过close系统调用关闭文件文件相关系统调用函数1、

2017-07-30 15:32:59 286

原创 消息队列的使用方法

消息队列:(1)消息队列是IPC对象的一种。(2)消息队列由消息队列ID来唯一标识。(3)消息队列就是一个消息的列表,用户可以在消息队列中添加消息、读取消息等。(4)消息队列可以按照类型来发送接收消息。(5)消息队列具有一定的FIFO特性,但是它可以实现消息的随机查询,这些消息又存在于内核中。可以通过命令ipcs -a查看所有的IPC对象使用情况ipcs -m 查看

2017-07-29 13:32:19 836

原创 共享内存使用方法

可以通过命令ipcs -a查看所有的IPC对象使用情况ipcs -m 查看共享内存ipcs -q 查看消息队列ipcs -s 查看信号灯集ipcrm -m shmid 删除shmid的共享内存ipcrm -q msgid 删除消息队列ipcrm -s semid 删除信号灯集共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝为了

2017-07-29 11:14:21 605

原创 信号灯集详细使用说明

信号灯(semaphore),也叫信号量。它是不同进程间或一个给定进程内部不同线程间的同步的机制信号灯种类:posix有名信号灯。posix基于内核的信号灯(无名信号灯)System V信号灯(IPC对象)System V的信号灯是一个或者多个信号灯的一个集合。其中的每一个都是单独的计数信号灯。而posix信号灯指的是单个计数信号灯可以通过命令ipcs -a

2017-07-28 21:06:40 4153

原创 线程安全、线程私有变量

线程安全:无论有多少个线程调用这个函数,此函数都会给相应的线程返回正确的结果。看下面这个例子:很明显我们在rebuf这个函数里返回了一个局部变量,在rebuf这个函数运行完之后,局部变量就会被销毁,所以我们打印出来的是这个样子的。那我们改进呢,函数运行完之后,局部变量就会被销毁,那我们就不让它销毁,加上static关键字

2017-07-27 18:41:24 2621

原创 Linux线程基本知识

1、线程:由于进程的地址空间是私有的,因此在进程间上下文切换时,系统开销比较大,为了提高系统的性能,许多操作系统规范里引入了轻量级进程的概念,也被称为线程,在同一个进程中创建的线程共享该进程的地址空间,并且和进程一样都参与内核同一的调度。2、进程和线程:1)、线程是参与内核调度最小基本单位,进程是拥有资源的最小基本单位2)、进程间相互独立,而同一个进程内的线程间共享进程

2017-07-26 22:11:46 394

原创 进程编程基本函数

pid_t fork(void)功能:创建一个新进程参数:无参返回值:成功: 1、在父进程里面返回一个大于0的值(子进程PID)2、在子进程里面返回0出错:返回-1pid_t getpid(void):函数返回调用进程本身的PIDpid_t getppid(void):函数返回调用进程的父进程的PIDpid_t wait(int *status)功能

2017-07-26 20:37:49 333

原创 fork函数的相关知识和使用

pid_t fork(void)功能:复制父进程来创建子进程返回值:成功给父进程返回子进程PID,给子进程返回0,失败返回-1 #include#include#includeint main(int argc, const char *argv[]){ pid_t pid; pid = fork(); if(pid < 0){ perror("Fai

2017-07-26 20:32:44 332

原创 Linux进程基本知识

Linux进程基础知识

2017-07-25 18:58:51 269

原创 printf()函数什么时候刷新缓存

大家应该都知道,printf(),是先将格式化好的信息先输到缓冲区上,因为输入输出的缓存为行缓存,所以当填满I/O缓存后,才进行实际I/O操作或者遇到换行符‘\n’(或者执行fflush、floce、exit、return),缓存大小为1K。请看如下程序:#include int main(int argv,const char *argv[]){ int n; printf(

2017-07-23 18:31:09 2087

原创 ubuntu下库的制作与使用

静态库:程序在编译的时候,如果链接的是静态库,会把程序中需要调用的函数接口实现代码从静态库中拷贝到可执行程序文件中,生成的可执行文件体积大,程序在运行的时候,不需要库的支持。动态库:程序在编译的时候,如果链接的是动态库,此时在可执行文件的头信息中记录动态库的名字,在程序运行的时候,操作系统会读取可执行文件的头信息,从而知道可执行文件在运行的时候,需要加载那些动态库。注意:动态连接的

2017-07-23 15:57:29 771

空空如也

空空如也

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

TA关注的人

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