Linux
小老虎_cch
要勇敢,要坚强,要努力,要自信,要像小星星一样闪闪发光
展开
-
HTTP详解
HTTP报文结构HTTP的两种报文:请求报文:client向server发送请求报文响应报文:从server到client的应答因为HTTP是面向文本的,因此 报文中的每个字段都是ASCII码串,故而每个字段的长度不确定。如上图所示:两种报文都是由三部分组成,两种报文格式的区别就是 开始行的不同。开始行:用于区分是请求报文还是响应报文。在请求报文的开始行叫做请求行(Requesr-L...原创 2019-11-08 13:15:19 · 355 阅读 · 0 评论 -
I/O复用 —— poll
poll系统调用和select类似,也是在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪这poll的原型:#include<poll.h>int poll(struct pollfd* fds,nfds_t nfds,int timeout);fds参数是一个pollfd结构类型的数组它指定所有我们感兴趣的文件描述符上发生的可读、可写和异常等事件,定义如下:...原创 2019-08-23 14:37:32 · 246 阅读 · 0 评论 -
I/O复用 —— select
作者前言:在学习i/o复用前,我们要清楚为什么要引出I/O复用,它的的作用是什么?什么是I/O复用?I/O复用是怎么实现的? ------- 想一想噢~下面我来解释一下这些问题I/O复用的作用 从进程线程的学习,到多进程多线程,再到进程池线程池,我们处理事件的效率越来越高,但是却有一个问题,一直都没有解决,那就是,当服务器分配了一个线程或进程为某一个客户端服务时,该进程...原创 2019-08-23 10:19:37 · 258 阅读 · 0 评论 -
I/O复用 —— 详解epoll 及三种复用函数的比较
epoll是Linux特有的I/O复用函数。在实现上与select、poll有很大差异。它是使用一组函数来完成任务。epoll将用户关注的文件描述符上的事件放在内核里的一个事件表中,从而无须像select和poll那样每次调用都要重复传入文件描述符集或事件集。epoll_create#include<sys/epoll.h>int epoll_create(int si...原创 2019-08-23 15:35:26 · 257 阅读 · 0 评论 -
LT模式和ET模式区别
LT模式:电平触发当epoll_wait检测到文件描述符上有事件发生,并将此事件通知应用程序之后,应用程序可以不立即处理该事件,当下次调用epoll_wait时,还会向应用程序通知这个事件,直到此事件被处理。如果用户没有处理就绪的文件描述符或者没有处理完,则内核会再次提醒ET模式:边沿触发 (高效模式)当epoll_wait检测到文件描述符上有事件发生,并将此事件通知应用程序之后,...原创 2019-08-23 16:21:50 · 1691 阅读 · 0 评论 -
实现一个命令解析器
(1)从键盘获取要执行的命令和参数,解析命令。用strtok(2)命令解析器fork复制自身,在子进程中替换为要执行的命令 execv(3)执行wait等待子进程结束execv而不用execl命令实现:(1)内置命令 cd ---> chdir exit(2)普通命令 pwd ls cp vi vim gcc未完。。。...原创 2019-08-08 15:37:48 · 1097 阅读 · 0 评论 -
TCP三次握手和四次挥手的过程详解
传输层协议主要有两个:TCP协议和UDP协议。这次主要讲解TCP协议使用TCP协议通信的双方必须写建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP连接时全双工的,即双方的数据度邪恶可以通过一个连接进行。完成数据交换后,通信双方都必须断开连接以释放系统资源。发送端执行的写操作和接收端执行的读操作次数之间没有任何数量关系。因为缓...原创 2019-07-30 19:55:13 · 1002 阅读 · 1 评论 -
变量,函数内存分布---虚拟地址空间布局
int a = 10; //全局变量,全局区。全局变量初始化且初始化不为0,存放在内存的.data段 int m; // 全局变量初始化为0或者未初始化,存放在.bss段 class SomeClass { private: int b; //由使用决定,在main函数中类SomeClass动态分配,...原创 2019-03-21 22:27:40 · 422 阅读 · 0 评论 -
【linux】 Daemon守护进程
一,守护进程Linux Daemon(守护进程)守护进程也称精灵进程(daemon)是生存期较长的一种进程。它们常常在系统自 举时启动,仅在系统关闭时才终止。并且它们没有控制终端,是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通...原创 2019-08-02 20:36:05 · 322 阅读 · 0 评论 -
【Linux】fork() 和 vfor()
1.forkfork:创建一个和当前进程映像一样的进程就可以通过fork()系统调用。其定义如下:#include<sys/types.h>#include<unistd.h>pid_t fork(void);成功调用fork()会创建一个新的进程,它几乎与调用fork()的进程一模一样,这两个进程都会继续进行。划重点!!!fork函数每调用一...原创 2019-07-29 19:29:47 · 216 阅读 · 0 评论 -
【Linux】gdb调试总结
进入调试:(1)输入GDB <文件名>(2)输入GDB ----> file <文件名>l :显示源代码(默认显示main函数所在文件的源代码)list <文件名>:num 显示指定文件指定行附近的源代码b : breakpoint的简写,设置断点。b <行号> 给指定行添加断点b <函数名>...原创 2019-01-20 20:24:36 · 274 阅读 · 0 评论 -
【Linux基础】关于gcc的使用
在Linux 下使用gcc来编译程序时,只需使用:(假设源代码文件的文件名为main.c)gcc main.c./a.out然而该过程可分解为四步:预处理、编译、汇编、链接。1.预处理:gcc -E main.c -o main.i 生成 .i 文件 删除注释,处理预处理指令,将包含的头文件展开2.编译:gcc -S mai...原创 2018-11-10 16:08:09 · 419 阅读 · 0 评论