<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Abraham_1的博客]]></title><description><![CDATA[只要开始，就不算晚。]]></description><link>https://blog.youkuaiyun.com/Abraham_1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Abraham_1]]></copyright><item><title><![CDATA[Linux C编程(十二) 之sourceinsight4使用总结]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/90112833</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/90112833</guid><author>Abraham_1</author><pubDate>Sat, 11 May 2019 17:53:49 +0800</pubDate><description><![CDATA[前言

随着学习的不断深入，代码量以及代码文件个数也越来越多，此时代码的有效编辑就成了一个棘手的问题，在此向大家推荐一款功能强大的代码阅读和编辑工具-----sourceinsight4。下面来讲讲如何使用这款神器。

1. 软件的安装（不再赘述，可自行百度或查阅其他资料）
2. 先创建一个工程
project—》new project 选择路径 工程名称  创建  并加入源文件，完成后如下， 以...]]></description><category></category></item><item><title><![CDATA[Linux C编程(十一) 之 I/O复用-----epoll机制]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/90108161</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/90108161</guid><author>Abraham_1</author><pubDate>Sat, 11 May 2019 17:11:20 +0800</pubDate><description><![CDATA[基础知识
I/O多路复用有很多种实现。在linux上，2.4内核前主要是select和poll，自Linux 2.6内核正式引入epoll以来，因为其可以轻松的处理上万个连接，性能卓越，已经成为了目前实现高性能网络服务器的必备技术。
函数解释
1. epoll_create
 int epoll_create(int size);

创建一个epoll的句柄，size用来告诉内核这个监听的数目一共...]]></description><category></category></item><item><title><![CDATA[Linux C编程(十) 之 I/O复用-----poll机制]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/90107304</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/90107304</guid><author>Abraham_1</author><pubDate>Sat, 11 May 2019 11:54:27 +0800</pubDate><description><![CDATA[poll和select对比

不同：
select使用三个位图来表示三个fdset的方式，poll使用一个 pollfd的指针实现。
pollfd结构包含了要监视的event和发生的event，不再使用select“参数-值”传递的方式。
pollfd并没有最大数量限制（但是数量过大后性能也是会下降）。
相同：
和select函数一样，poll返回后，需要轮询pollfd来获取就绪的描述符。
从上...]]></description><category></category></item><item><title><![CDATA[Linux C编程(九) 之 I/O复用-----select机制]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/90082370</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/90082370</guid><author>Abraham_1</author><pubDate>Sat, 11 May 2019 10:21:50 +0800</pubDate><description><![CDATA[基础概念
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取，它就通知该进程。IO多路复用适用如下场合：


当客户处理多个描述字时（一般是交互式输入和网络套接口），必须使用I/O复用。


当一个客户同时处理多个套接口时，而这种情况是可能的，但很少出现。


如果一个TCP服务器既要处理监听套接口，又要处理已连接套接口，一般也要用到I/O复用。


如果一个服务器即要处理TCP，...]]></description><category></category></item><item><title><![CDATA[Linux C编程(八) 之 网络编程（下）]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/90081598</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/90081598</guid><author>Abraham_1</author><pubDate>Fri, 10 May 2019 18:06:56 +0800</pubDate><description><![CDATA[这里运用前两篇的内容做出以下实例代码
server:
#include&lt;stdio.h&gt;
#include&lt;sys/socket.h&gt;
#include&lt;netinet/in.h&gt;
#include&lt;string.h&gt;
#include&lt;unistd.h&gt;
#include &lt;arpa/inet.h&gt;
#include&lt;...]]></description><category></category></item><item><title><![CDATA[Linux C编程(七) 之 网络编程 (中)]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/90049560</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/90049560</guid><author>Abraham_1</author><pubDate>Fri, 10 May 2019 16:07:52 +0800</pubDate><description><![CDATA[Linux下网络编程相关API
socket()函数
    int  socket(int protofamily, int type, int protocol);//返回sockfd
 sockfd是描述符。


socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字，而socket()用于创建一个socket描述符（socket descriptor），它唯一标识一...]]></description><category></category></item><item><title><![CDATA[Linux C编程(六) 之 网络编程 (上)]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/89977723</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/89977723</guid><author>Abraham_1</author><pubDate>Thu, 09 May 2019 21:55:31 +0800</pubDate><description><![CDATA[网络协议栈

网络基础


在Linux网络编程中，网络协议主要分为五层
应用层
传输层
网络层
链路层
物理层


TCP/IP（Transmission Control Protocol/Internet Protocol）即传输控制协议/网间协议，是一个工业标准的协议集，它是为广域网（WANs）设计的。
TCP/IP协议存在于OS中，网络服务通过OS提供，在OS中增加支持TCP/IP的系统调...]]></description><category></category></item><item><title><![CDATA[Linux C编程(五) 之 gdb详解]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/89932052</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/89932052</guid><author>Abraham_1</author><pubDate>Wed, 08 May 2019 21:35:15 +0800</pubDate><description><![CDATA[GDB调试

gdb是gnu项目组开发的一款Unix下功能强大的调试器  主要用来调试C/C++程序


基于命令行的调试方法   可以随心所欲的运行程序
所有的调试都是可以进行脚本编写的
能够调试所有架构的代码
有三种调试方法供大家选择   可安装插件
gdb 可以下多种类型的断点
GDB支持远程调试，支持与IDA进行联调
可动态改变程序的运行环境

gdb调试前提
若想使用gdb进行程序调试，...]]></description><category></category></item><item><title><![CDATA[Linux C编程(四) 之 静态库和动态库]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/89928879</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/89928879</guid><author>Abraham_1</author><pubDate>Tue, 07 May 2019 20:34:44 +0800</pubDate><description><![CDATA[概述

linux下有两种库:动态库和静态库 二者的不同点在于代码被载入的时刻不同。
静态库的代码在编译过程中已经被载入可执行程序,因此体积比较大。
动态库(共享库)的代码在可执行程序运行时才载入内存，在编译过程中仅简单的引用，因此代码体积比较小。
不同的应用程序如果调用相同的库,那么在内存中只需要有一份该动态库(共享库)的实例。
静态库和动态库的最大区别,静态情况下,把库直接加载到程序中,而动态...]]></description><category></category></item><item><title><![CDATA[Linux C编程(三) 之 makefile详解]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/89927308</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/89927308</guid><author>Abraham_1</author><pubDate>Tue, 07 May 2019 19:04:27 +0800</pubDate><description><![CDATA[转自陈皓：https://blog.youkuaiyun.com/haoel/article/details/2886

什么是makefile？或许很多Winodws的程序员都不知道这个东西，因为那些Windows的IDE都为你做了这个工作，但我觉得要作一个好的和professional的程序员，makefile还是要懂。这就好像现在有这么多的HTML的编辑器，但如果你想成为一个专业人士，你还是要了解HTM...]]></description><category></category></item><item><title><![CDATA[Linux C编程(一) 之 系统基本操作]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/89893756</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/89893756</guid><author>Abraham_1</author><pubDate>Tue, 07 May 2019 08:48:41 +0800</pubDate><description><![CDATA[linux虚拟机安装
可参考：https://blog.youkuaiyun.com/u013142781/article/details/50529030

linux 基础快捷键和工具说明

Ctrl+alt+t  		图形界面中呼出控制终端
alt+shift+ =       放大终端
ctrl + -               缩小终端
ctrl + alt +F1~F6      切换至无图形界...]]></description><category></category></item><item><title><![CDATA[使用frp实现内网穿透]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/89891998</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/89891998</guid><author>Abraham_1</author><pubDate>Mon, 06 May 2019 21:31:29 +0800</pubDate><description><![CDATA[要实现内网映射，首先需要准备以下工具：

  vps
	 kali（一台linux机器）
	 frp 
	 xshell
步骤一


进入vps修改frps.ini文件如下



     [common]
bind_port = 7000#供客户端连接的端口
dashboard_port = 777...]]></description><category></category></item><item><title><![CDATA[Linux下AIO服务设计框架]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/79824350</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/79824350</guid><author>Abraham_1</author><pubDate>Sun, 08 Apr 2018 18:41:07 +0800</pubDate><description><![CDATA[一. 对于异步I/O的概述aio异步读写是在Linux内核2.6之后才正式纳入其标准。之所以会增加此模块，是因为众所周知我们计算机CPU的执行速度远大于I/O读写的执行速度，如果我们用传统的阻塞式或非阻塞式来操作I/O的话，那么我们在同一个程序中(不用多线程或多进程)就不能同时操作俩个以上的文件I/O，每次只能对一个文件进行I/O操作，很明显这样效率很低下(因为CPU速度远大于I/O操作的速度，所...]]></description><category></category></item><item><title><![CDATA[nmap使用详解]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/79810279</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/79810279</guid><author>Abraham_1</author><pubDate>Tue, 03 Apr 2018 22:41:16 +0800</pubDate><description><![CDATA[nmap简介：nmap Network Mapper(网络映射器)是一个开源并且为了Linux系统管理员或者网络管理员的万能的工具。Nmap用于浏览网络，执行安全扫描，网络审计以及在远程机器找到开放端口。它可以扫描在线主机，操作系统，滤包器和远程主机打开的端口。nmap安装方式：   yum install nmap                   [基于Red Hat系统]   $ sudo...]]></description><category></category></item><item><title><![CDATA[kali-2017安装更新源和vmtools安装]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/79782158</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/79782158</guid><author>Abraham_1</author><pubDate>Sun, 01 Apr 2018 21:45:30 +0800</pubDate><description><![CDATA[一些更新源：#autodeb http://http.kali.org/kali kali-rolling main non-free contrib#中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contribdeb-src http://mirrors.ustc.edu.cn/kali kali-rollin...]]></description><category></category></item><item><title><![CDATA[处理机调度之FCFS]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/79756055</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/79756055</guid><author>Abraham_1</author><pubDate>Fri, 30 Mar 2018 13:09:38 +0800</pubDate><description><![CDATA[本程序旨在使大家对先来先服务的处理机调度机制有更加深入的了解，步骤如下：1.创建PCB结构体代表对相应进程的唯一标识，内含以下数据：进程名 要求运行时间 状态 指针 2.创建相应队列和链表deque&amp;lt;PCB_STRU*&amp;gt;Ready_Queue; //就绪队列
deque&amp;lt;PCB_STRU*&amp;gt;Block_Queue; //阻塞队列
PCB_STRU* Ready_list =...]]></description><category></category></item><item><title><![CDATA[生产者消费者问题VC语言实现]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/79665943</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/79665943</guid><author>Abraham_1</author><pubDate>Fri, 23 Mar 2018 12:50:42 +0800</pubDate><description><![CDATA[源代码如下：//宏定义#define    BUFFER     20  //缓冲区大小
//头文件
#include&amp;lt;windows.h&amp;gt;
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;

unsigned short ProductID = 0;    //产品号
unsigned ...]]></description><category></category></item><item><title><![CDATA[操作系统中进程同步问题的几个经典问题与解答]]></title><link>https://blog.youkuaiyun.com/Abraham_1/article/details/79639922</link><guid>https://blog.youkuaiyun.com/Abraham_1/article/details/79639922</guid><author>Abraham_1</author><pubDate>Wed, 21 Mar 2018 14:44:21 +0800</pubDate><description><![CDATA[1、用记录型信号量解决以下问题，用类C语言编写进程同步算法。司机   P1       售票员  P2       REPEAT          REPEAT       启动             关门       正常运行         售票       到站停           开门       UNTIL FALSE     UNTIL FALSE	semaphore s1,s2;...]]></description><category></category></item></channel></rss>