Linux服务器
wang13342322203
这个作者很懒,什么都没留下…
展开
-
我读过的最好的epoll讲解--转自”知乎“
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数...转载 2019-07-25 18:11:01 · 190 阅读 · 0 评论 -
linux之dup和dup2函数解析
理论介绍:1. 文件描述符在内核中数据结构在具体说dup/dup2之前,我认为有必要先了解一下文件描述符在内核中的形态。一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2), 0与进程的标准输入相关联,1与进程的标准输出相关联,2与进程的标准错误输出相关联,一个进程当前有哪些打开的文件描述符可以通过/proc...转载 2019-08-16 22:50:52 · 226 阅读 · 0 评论 -
Linux下execl函数学习
Linux下头文件#include <unistd.h>函数定义int execl(const char *path, const char *arg, ...);函数说明:execl()其中后缀"l"代表list也就是参数列表的意思,第一参数path字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参...转载 2019-08-16 22:44:34 · 745 阅读 · 0 评论 -
深入了解epoll 函数
一、 介绍Epoll 是一种高效的管理socket的模型,相对于select和poll来说具有更高的效率和易用性。传统的select以及poll的效率会因为 socket数量的线形递增而导致呈二次乃至三次方的下降,而epoll的性能不会随socket数量增加而下降。标准的linux-2.4.20内核不支持epoll,需要打patch。本文主要从linux-2.4.32和linux-2.6.10两...转载 2019-08-16 21:21:46 · 463 阅读 · 0 评论 -
epoll_create, epoll_ctl和epoll_wait 函数用法实例讲解,总结得不错
http://apps.hi.baidu.com/share/detail/31300135NAME epoll - I/O event notification facilitySYNOPSIS #include <sys/epoll.h>DEscrīptION epoll is a variant of poll(2) that c...转载 2019-08-16 21:15:45 · 2852 阅读 · 0 评论 -
C++内存池(附源码)
C++内存池(附源码)前段时间阅读了Nginx的源码,其对内存高效的管理给我留下了深刻的印象,而内存管理的核心便是内存池。于是想自己实现一个C++版本的内存池,这方面当然还是STL的内存池最为经典,所以免不了参悟借鉴。内存池的概念早已经是老生常谈,然而把内存池实现的高效安全仍是个比较艰巨的问题。内存池的原理简单来讲就是一次性的向系统申请大量的内存,之后再有内存请求的时候,如果内存池的内存大小能够...转载 2019-08-09 22:45:15 · 409 阅读 · 0 评论 -
C++11线程池的实现
什么是线程池处理大量并发任务,一个请求一个线程来处理请求任务,大量的线程创建和销毁将过多的消耗系统资源,还增加了线程上下文切换开销。线程池通过在系统中预先创建一定数量的线程,当任务请求到来时从线程池中分配一个预先创建的线程去处理任务,线程在处理任务之后还可以重用,不用销毁,从而节省系统资源。对于多核处理器,线程会被分配到多个CPU,提高并行处理效率。每个线程独立阻塞,防止主线程被阻塞而使主...转载 2019-07-26 14:30:17 · 107 阅读 · 0 评论 -
epoll的各个事件触发条件测试
1、listen fd,有新连接请求,触发EPOLLIN。2、对端发送普通数据,触发EPOLLIN。3、带外数据,只触发EPOLLPRI。4、对端正常关闭(程序里close(),shell下kill或ctr+c),触发EPOLLIN和EPOLLRDHUP,但是不触发EPOLLERR和EPOLLHUP。 关于这点,以前一直以为会触发EPOLLERR或者EPOLLHUP。 再ma...转载 2019-07-26 12:57:47 · 437 阅读 · 0 评论 -
!DOCTYPE html>能不能不加啊? 不加又出错了
网页中用了 <!DOCTYPEhtml... 就表示该页面采用了W3C标准,这样做可以增强页面的兼容性,降低对浏览器的依赖性。不加这一行,就表示页面采用浏览器本身的解析标准,这样会造成页面在不同的浏览器(IE、火狐等)可能出现不同的显示效果。...转载 2019-07-26 11:06:31 · 2621 阅读 · 0 评论 -
HTML 教程
http://www.w3school.com.cn/html/index.asp转载 2019-07-26 10:59:35 · 69 阅读 · 0 评论 -
Web开发的大爆炸:从index.html开始
在这篇针对初学Web开发人员的文章中,我们来看看HTML以及如何使用这种标记语言来设置Web开发项目。那么我们从哪里开始?在一开始的时候!138亿年前,宇宙是在所谓的大爆炸中创造的。好吧,也许我们不需要那么远。让我们从这个HTML事物的来源开始。如果您不熟悉HTML,HTML(也称为超文本标记语言)已经出现一段时间了。它是网页结构的标准。它是定义我们的Web(或万维网www)标准的3种...转载 2019-07-26 10:12:47 · 196 阅读 · 0 评论 -
Linux下sendfile 和 send 不同
转载 2019-07-25 21:29:46 · 650 阅读 · 0 评论 -
理解linux下sendfile系统调用
服务器响应一个http静态资源请求的步骤如下:1 把磁盘文件读入内核缓冲区2 从内核缓冲区读到内存3 处理(静态资源不需处理)4 发送到网卡的内核缓冲区(发送缓存)5 网卡发送数据数据从第一步中的内核缓冲区到第四步的内核缓冲区白白绕了一个圈,没有任何变化浪费了时间而sendfile系统调用就是来解决这个问题的sendfile省略了上面的 2、3步,磁盘文件被直接...转载 2019-07-25 21:28:38 · 391 阅读 · 0 评论 -
struct stat结构体简介
在使用这个结构体和方法时,需要引入:<sys/types.h><sys/stat.h>struct stat这个结构体是用来描述一个linux系统文件系统中的文件属性的结构。可以有两种方法来获取一个文件的属性:1、通过路径:int stat(const char *path, struct stat *struct_stat);int lstat...转载 2019-07-25 21:12:23 · 720 阅读 · 0 评论 -
URI和URL的区别比较与理解
一、URI<1>什么是URIURI,通一资源标志符(Universal Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。<2>URI的结构组成URI通常由三部分组成:①访问资源的命名机制;②存放资源的主机名;③资源自身的名称,由路径表示。&...转载 2019-07-25 20:43:48 · 142 阅读 · 0 评论 -
多线程编程小结(一)
1.背景知识Linux没有真正意义上的线程,它的实现是由进程来模拟,所以属于用户级线程,位于libpthread共享库(所以线程的ID只在库中有效),遵循POSIX标准。Windows下有一个真正的数据结构TCB来描述线程。Linux上两个最有名的线程库LinuxThreads和NPTL。Linux两个线程模型的比较:Linux线...转载 2019-07-25 19:12:08 · 80 阅读 · 0 评论 -
CGI技术原理
一、CGI技术1.1 CGI的提出 CGI是外部扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端(一般是WWW浏览器)输入的协同工作数据,完成客户端与服务器的交互操作。这在实际应用中非常有用,如可以编写CGI外部扩展程序来访问外部数据库,客户端用户可以通过它和WWW服务器来进行数据查询。CGI一般分两种:标准CGI和缓冲CGI。所有的WWW服务...转载 2019-08-16 22:59:04 · 732 阅读 · 0 评论