<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[studyingEverymonent的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/studyingEverymonent</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; studyingEverymonent]]></copyright><item><title><![CDATA[TCP笔记]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/82025486</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/82025486</guid><author>studyingEverymonent</author><pubDate>Fri, 24 Aug 2018 21:15:50 +0800</pubDate><description><![CDATA[链路层

以太网和802.3对数据帧的长度都有一个限制，其最大值分别是1500字节和1492字节。链路层的这个特性叫做MTU，最大传输单元。如果IP层有一个数据报要传，而且数据的长度比链路层的MIU还大，那么IP层就需要进行分片(fragmentation)，把数据报分成若干片，这样每一片都小于MTU。



IP

不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。I...]]></description><category></category></item><item><title><![CDATA[函数指针]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/82021720</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/82021720</guid><author>studyingEverymonent</author><pubDate>Fri, 24 Aug 2018 16:59:41 +0800</pubDate><description><![CDATA[函数的类型由它的返回类型和形参类型共同决定，与函数名无关。比如：

//乘法运算
int product(int u, int v)
{
    return u*v;
}

想要声明一个可以指向该函数的指针，只需要用指针替换函数名即可:

int (*pf)(int, int);// 未初始化，这是一个声明，和int i;一样

函数指针的使用

当我们把函数名作为一个值使用时，该函数自动转换为...]]></description><category></category></item><item><title><![CDATA[ctime函数使用遇到的坑]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78521302</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78521302</guid><author>studyingEverymonent</author><pubDate>Mon, 13 Nov 2017 16:01:43 +0800</pubDate><description><![CDATA[今天在使用ctime函数遇到了一个问题，示例代码如下：char *date;              //获取当前的时间
time_t now = time(NULL);
date = ctime(&now);
delete_crlf(date);       //此函数是为了删除date的换行符
printf("%s\n", date);sleep(2);
now = time(NULL);
c]]></description><category></category></item><item><title><![CDATA[Unix环境高级编程学习笔记(0)-Unix基础]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78358042</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78358042</guid><author>studyingEverymonent</author><pubDate>Thu, 26 Oct 2017 20:04:56 +0800</pubDate><description><![CDATA[输入和输出1.文件描述符 
文字描述符是一个小的非负整数,内核用以标识一个特定进程正在存访的文件。当内核打开一个现存文件或创建一个新文件时,它就返回一个文件描述符。当读、写文件时,就可使用它。 
2.标准输入、标准输出和标准出错 
按惯例,每当运行一个新程序时,所有的 shell都为其打开三个文件描述符:标准输入、标准输出以及标准出错。如果像简单命令 l s那样没有做什么特殊处理,则这三个描述符都连]]></description><category></category></item><item><title><![CDATA[文本文件与二进制文件区别]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78341981</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78341981</guid><author>studyingEverymonent</author><pubDate>Wed, 25 Oct 2017 15:24:03 +0800</pubDate><description><![CDATA[一、文本文件与二进制文件的定义  大家都知道计算机的存储在物理上是二进制的，所以文本文件与二进制文件的区别并不是物理上的，而是逻辑上的。这两者只是在编码层次上有差异。 
   简单来说，文本文件是基于字符编码的文件，常见的编码有ASCII编码，UNICODE编码等等。二进制文件是基于值编码的文件，你可以根据具体应用，指定某个值是什么意思（这样一个过程，可以看作是自定义编码）。 
  从上面可以看出文]]></description><category></category></item><item><title><![CDATA[序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78341498</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78341498</guid><author>studyingEverymonent</author><pubDate>Wed, 25 Oct 2017 14:52:58 +0800</pubDate><description><![CDATA[什么是序列化序列化是把数据结构或对象翻译成一种能够被存储(比如：存储在一个文件或内存缓冲区)和传输(比如：通过网络连接)的格式的过程，并在之后重新构造出来(可能是在一个不同的计算机环境中)。 
序列化是将对象转换成一系列字节，这样对象就可以很容易地保存到持久存储，或者通过网络进行传输。然后将字节流反序列化——转换成原始对象的副本。序列化的作用1） 把对象的字节序列永久地保存到硬盘上（通常存放在一个文]]></description><category></category></item><item><title><![CDATA[linux下各主要文件夹作用]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78319309</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78319309</guid><author>studyingEverymonent</author><pubDate>Mon, 23 Oct 2017 15:30:03 +0800</pubDate><description><![CDATA[/  根目录　　包含了几乎所的文件目录。相当于中央系统。进入的最简单方法是：cd /。/boot  引导程序，内核等存放的目录这个目录，包括了在引导过程中所必需的文件。在最开始的启动阶段，通过引导程序将内核加载到内存，完成内核的启动（这个时候，虚拟文件系统还不存在，加载的内核虽然是从硬盘读取的，但是没经过Linux的虚拟文件系统，这是比较底层的东西来实现的。然后内核自己创建好虚拟文件系统，并且从虚拟]]></description><category></category></item><item><title><![CDATA[进程管理]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78317777</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78317777</guid><author>studyingEverymonent</author><pubDate>Mon, 23 Oct 2017 13:15:40 +0800</pubDate><description><![CDATA[linux的进程之间的调用(fork and exec)(1)系统先以 fork 的方式复制一个与父进程相同的暂存进程,这个进程与父进程唯一的差别就是 PID不同! 但是这个暂存进程还会多一个 PPID 的参数, PPID 就是父进程的进程标识符 
(2)暂存进程开始以 exec 的方式加载实际要执行的程序,最终产生子进程服务(daemon):常驻在内存中的进程服务大致可分为系统所需要的服务(e.g]]></description><category></category></item><item><title><![CDATA[Linux的帐号管理与ACL权限设定]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78315958</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78315958</guid><author>studyingEverymonent</author><pubDate>Mon, 23 Oct 2017 10:11:22 +0800</pubDate><description><![CDATA[用户在终端界面通过login接口，输入帐号密码后，linux系统做了什么？ 1. 先找寻 /etc/passwd 里面是否有你输入的账号?如果没有则跳出,如果有的话则将该账号对应的 UID 与GID (在 /etc/group 中) 读出来,另外,该账号的家目录与 shell 设定也一并读出;
 2. Linux 会进入 /etc/shadow 里面找出对应的账号与 UID,然后核对一下你刚刚输入的]]></description><category></category></item><item><title><![CDATA[C++ 双向队列链式实现和队列的顺序实现]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78213975</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78213975</guid><author>studyingEverymonent</author><pubDate>Thu, 12 Oct 2017 13:47:40 +0800</pubDate><description><![CDATA[双向队列采用双向链表实现dequeue.h#ifndef _DEQUEUE_H
#define _DEQUEUE_Htypedef int DataType; class Node
{
private: 
    DataType data;
public:
    Node *next;
    Node *prior;
    Node(DataType val);
    ~Node();]]></description><category></category></item><item><title><![CDATA[C++ 顺序栈和链式栈的实现]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78213912</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78213912</guid><author>studyingEverymonent</author><pubDate>Thu, 12 Oct 2017 13:40:14 +0800</pubDate><description><![CDATA[stack.h#ifndef _STACK_H
#define _STACK_H#include <vector>typedef int DataType;class Node
{
private:
    DataType data;
public:
    Node *next;
    Node(DataType val);
    ~Node();
    DataType get_data]]></description><category></category></item><item><title><![CDATA[C++ 双向链表的实现]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78207654</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78207654</guid><author>studyingEverymonent</author><pubDate>Wed, 11 Oct 2017 19:57:08 +0800</pubDate><description><![CDATA[list.h#ifndef _LIST_H
#define _LIST_Htypedef int DataType;class Node
{
private:
    DataType data;
public:
    Node *next;//后驱指针
    Node *prior;//前驱指针
    Node(DataType val);
    ~Node();
    DataType]]></description><category></category></item><item><title><![CDATA[C++:复制构造函数在什么时候被调用？]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78192992</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78192992</guid><author>studyingEverymonent</author><pubDate>Tue, 10 Oct 2017 15:16:23 +0800</pubDate><description><![CDATA[1、对象在创建时使用其他的对象初始化Person p(q); //此时复制构造函数被用来创建实例pPerson p = q; //此时复制构造函数被用来在定义实例p时初始化p2.对象作为函数的参数进行值传递时f(p); //此时p作为函数的参数进行值传递，p入栈时会调用复制构造函数创建一个局部对象，与函数内的局部变量具有相同的作用域需要注意的是，赋值并不会调用复制构造函数，赋值只是赋值运算符(重载)]]></description><category></category></item><item><title><![CDATA[C++中delete和delete[]的区别]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78192903</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78192903</guid><author>studyingEverymonent</author><pubDate>Tue, 10 Oct 2017 15:10:27 +0800</pubDate><description><![CDATA[C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete，回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[]，其中又分为两种情况：(1) 为基本数据类型分配和回收空间；(2) 为自定义类型分配和回收空间。请看下面的程序。#include <iostream>;
using namespace std;class T {]]></description><category></category></item><item><title><![CDATA[C++ STL vector 用法详解]]></title><link>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78170775</link><guid>https://blog.youkuaiyun.com/studyingEverymonent/article/details/78170775</guid><author>studyingEverymonent</author><pubDate>Sat, 07 Oct 2017 18:16:22 +0800</pubDate><description><![CDATA[介绍
vector是表示可变大小数组的序列容器。
就像数组一样，vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问，和数组一样高效。但是又不像数组，它的大小是可以动态改变的，而且它的大小会被容器自动处理。
本质讲，vector使用动态分配数组来存储它的元素。当新元素插入时候，这个数组需要被重新分配大小为了增加存储空间。其做法是，分配一个新的数组，然后将全]]></description><category></category></item></channel></rss>