自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

五山口老法师

仰望星空,脚踏实地!

  • 博客(23)
  • 收藏
  • 关注

原创 gdb用法

gdb 的用法在Linux应用程序开发中,最常用的调试器是gdb,它可以在程序中设置断点、查看变量值、一步一步跟踪程序的执行过程。利用调试器的这些功能可以方便地找出程序中存在的非语法错误。一、启动和退出gdbgdb调试的对象是可执行文件,而不是程序的源代码。如果要使一个可执行文件可以被gdb调试,那么在使用编译器gcc编译程序时需要加入-g选项。-g选项告诉gcc在编译程序时加入调...

2018-07-29 15:58:24 686

转载 深度好文:select与非阻塞IO

对于面向连接的socket类型(SOCK_STREAM,SOCK_SEQPACKET)在读写数据之前必须建立连接,首先服务器端socket必须在一个客户端知道的地址进行监听,也就是创建socket之后必须调用bind绑定到一个指定的地址,然后调用int listen(int sockfd, int backlog);进行监听。此时服务器socket允许客户端进行连接,backlog提示没被acce...

2018-07-29 11:17:29 627

原创 epoll的ET和LT模式

从man手册中,得到ET和LT的具体描述如下EPOLL事件有两种模型:Edge Triggered (ET)Level Triggered (LT)假如有这样一个例子:1. 我们已经把一个用来从管道中读取数据的文件句柄(RFD)添加到epoll描述符2. 这个时候从管道的另一端被写入了2KB的数据3. 调用epoll_wait(2),并且它会返回RFD,说明它已经准备好读取操作4....

2018-07-29 10:35:26 187

原创 Linux文件的权限[srwxr-xr-x]

一、UNIX下关于文件权限的表示方法和解析UNIX下关于文件权限的表示方法和解析  SUID 是 Set User ID, SGID 是 Set Group ID的意思。  UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面解析一下格式所表示的意思。这种表示方法一共有十位:  9 8 7 6 5 4 3 2 1 0...

2018-07-28 09:37:30 13225

原创 网络常见面试题

https://blog.csdn.net/duguyiren123/article/details/46374627 https://blog.csdn.net/weiyuefei/article/details/50413543 https://www.cnblogs.com/jeakeven/p/5311575.html  

2018-07-27 21:24:10 122

原创 select/poll/epoll 与 /dev/poll

select/poll这两种实际上差不多,都是把一组fd传送给kernal,然后返回一个就绪fd的数量,然后开始遍历所有的fd,找到那些可读或者可写的。区别在于,poll相比select来说,传送给kernal的数组要小,这可能是它唯一的优势,其他方面区别不大.... select/poll/epoll区别https://www.cnblogs.com/Anker/p/32650...

2018-07-27 11:53:36 753

原创 守护进程和inetd守护进程

一、守护进程介绍守护进程是在后台运行且不与任何控制终端相关联的进程。通常由系统初始化脚本启动,当然也可以在shell提示符下用命令行启动,不过这种守护进程必须亲自脱离于控制终端的关联。守护进程的启动方法有:1、系统初始化阶段,由系统初始化脚本启动。这些脚本通常位于/etc、/etc/rc开头的某个目录中。由这些脚本启动的守护进程从一开始就有root特权。例如:inetd超级服务器、We...

2018-07-26 12:02:30 484

原创 普通进程的守护进程化

前言     自定义一个daemon_init函数,涉及到知识点为“如何创建一个daemon(守护进程)”,实现步骤如下:fork之后杀掉父进程(此时子进程被init收养)这是为了为下一步setsid做准备,因为只有不是进程组首进程的进程才能调用setsid, setsid,创建一个新的会话并断开与之前的控制终端的关系, 再次fork并杀掉首进程, 这样就确保了子进程不是一个会话首进程...

2018-07-25 20:59:05 286

原创 网络知识点集锦

前言对应于一些知识点,总结得比较好的博客。正文可重入和不可重入https://blog.csdn.net/double_happiness/article/details/72877112日志-syslog系统日志https://blog.csdn.net/ty_hf/article/details/55511624套接字与文件描述符关系https://blog.c...

2018-07-25 19:36:04 193

转载 SO_REUSEADDR和SO_REUSEPORT

前言基本概念:SO_REUSEADDR套接字选项能起到以下4个不同的功用:(1)SO_REUSEADDR允许启动一个监听服务器并捆绑众所周知端口,即使以前建立的该端口用作它们的本地端口的连接仍存在。这个条件通常是这样碰到的:a)启动一个监听服务器;b)连接请求到的,派生一个子进程来处理这个客户;c)监听服务器终止,但子进程继续为现有的连接上的客户提供服务;d)重启监...

2018-07-23 22:42:27 421

原创 原理 : 线程池、连接池、内存池

一、池化技术 - 简单点来说,就是提前保存大量的资源,以备不时之需。对于线程,内存,oracle的连接对象等等,这些都是资源,程序中当你创建一个线程或者在堆上申请一块内存时,都涉及到很多系统调用,也是非常消耗CPU的,如果你的程序需要很多类似的工作线程或者需要频繁的申请释放小块内存,如果没有在这方面进行优化,那很有可能这部分代码将会成为影响你整个程序性能的瓶颈。池化...

2018-07-15 15:44:31 387

原创 CGI到底是什么

前言以下是总结的比较好的博客.正文1.CGI 是什么玩意2.深刻认识CGI

2018-07-14 19:50:59 2086

原创 0666 | IPC_CREAT

在创建或者消息队列或者共享内存的时候,会用到这个原语.那么接下来解释一下:int msgget(key_t key , int msgflg)//如:int msgid = msgget((key_t)1234,0666|IPC_CREAT)如果:0666从左向右:第一位:表示这是个八进制数 000第二位:当前用户的经权限:6=110(二进制),每一位分别对就 可读,可写,可执行,,6说明当前用...

2018-07-14 15:32:27 10702

原创 深刻理解:反向代理服务器

很久以前,老王去饭店吃饭,需要先到饭店,七荤八素点好菜,坐等饭菜上桌,然后大快朵颐,不亦乐乎。有了第三方订餐外卖平台(代理),老王懒得动身前往饭店,老王打个电话或用APP,先选好某个饭店,再点好菜,外卖小哥会送上门来。由于某个品牌的饭店口碑特别好,食客络绎不绝涌入,第三方订餐电话也不绝于耳,但是限于饭店接待能力有限,无法提供及时服务,很多食客等得不耐烦了,纷纷铩羽而归,饭店老总看着煮熟的鸭子飞走了...

2018-07-12 22:26:40 165

转载 127.0.0.1和0.0.0.0地址的区别

1. IP地址分类1.1 IP地址表示IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id:表示ip地址所在网络中的某个主机号码。 即: IP-address ::= { <Network-number>, <Host-number> }1.2 IP地址分类IP地址一共分为5类,即A~E,它们分...

2018-07-12 21:41:06 709

原创 ./nptl/pthread_mutex_lock.c:81: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed

#include<iostream>#include<pthread.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<errno.h>using namespace std;pthread_cond_t taxiarrive = ...

2018-07-12 19:24:57 7311 4

转载 IP协议详解之子网寻址、子网掩码、构造超网

子网寻址1. 从两级IP地址到三级IP地址    <1>. IP地址利用率有时很低。    <2>. 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏。    <3>. 两级IP地址不够灵活。为了解决上述问题,1985年起在IP地址中增加了一个“子网号字段”,使两级IP地址变为三级IP地址。这种方法叫做划分子网( subnetting ), ...

2018-07-10 21:30:59 978

转载 RPC服务和HTTP服务对比

很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率...

2018-07-10 19:15:36 725

原创 1.使用sizeof计算类的大小

类的sizeof大小一般是类中的所有成员的sizeof大小之和。不过有两点需要注意:1)当类中含有虚成员函数的时候,例如:class B{float a;public:virtual void fun(void);}此时sizeof(B)的大小为8,而不是4。因为在类中隐藏了一个指针,该指针指向虚函数表,正因为如此,使得C++能够支持多态,即在运行时绑定函数的地址。 ...

2018-07-06 21:40:58 247

原创 磁盘调度算法寻道问题

常用的磁盘调度算法有四种:先来先服务算法(FCFS)最短寻道时间优先算法(SSTF)扫描算法(SCAN)循环扫描算法(CSCAN)先来先服务算法(First Come First Service)FCFS算法根据进程请求访问磁盘的先后顺序进行调度,是一种最简单的调度算法。 例1:某一磁盘请求序列(磁道号):98、 183、 37、122、14、124、 65、 61...

2018-07-06 21:15:50 2103

原创 TCP核心概念-慢启动,ssthresh,拥塞避免,公平性的真实含义

前言本文主要阐述TCP拥塞控制中ssthresh的来历以及为什么拥塞避免探测到丢包的时候,ssthresh会被设置为当前窗口的一半。进入证实内容之前,不得不再次吐槽!目前在网上搜的,任何资料上看的,甚至RFC上,都没有讲明白到底什么是ssthresh,它的值有什么讲究,几乎所有的资料都是在说,如果窗口大于ssthresh,那么就执行线性增窗的拥塞避免阶段,否则执行慢启动...这让几乎所有人记...

2018-07-06 17:57:29 1185

原创 TCP/IP面试题汇总

1.https://blog.csdn.net/qq_25827845/article/details/669751292.https://blog.csdn.net/wendy_keeping/article/details/760985043.https://blog.csdn.net/yulyu/article/details/69062288 4.https://blog.csdn.n...

2018-07-06 17:54:49 969

原创 后台开发技术(1)--概述

说到后台开发,首选就有一个问题:什么是后台开发。就我理解,就是做服务器端开发。在服务器端运行着不同功能的服务,有直接与客户端连接的,有实现某一特定业务的比如用户注册登录,有数据存储的如基于mysql,memcached,redis等做的存储系统,除此之外还有一些满足运维监控系统,运营统计系统等。那么后台开发需要哪些技术呢?回答这个问题之前先来看看一般的后台系统架构,如下图所示:...

2018-07-04 23:44:00 8240 1

空空如也

空空如也

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

TA关注的人

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