<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chenxinntu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenxinntu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenxinntu]]></copyright><item><title><![CDATA[双向循环链表]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/105564158</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/105564158</guid><author>chenxinntu</author><pubDate>Thu, 16 Apr 2020 18:19:17 +0800</pubDate><description><![CDATA[#ifndef _LINKLIST_H

#define _LINKLIST_H



#define FAILURE 10000

#define SUCCESS 10001

#define TRUE 10002

#define FALSE 10003



typedef int ElemType;



struct node //双向循环链表

{

ElemType data;...]]></description><category></category></item><item><title><![CDATA[VC++ Sleep函数原理及Sleep（0）的使用（文章较深入但通俗易懂）]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/89851675</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/89851675</guid><author>chenxinntu</author><pubDate>Sun, 05 May 2019 17:32:34 +0800</pubDate><description><![CDATA[我们可能经常会用到 Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢？思考下面这两个问题：
假设现在是 2012-12-16 3:37:40，如果我调用一下 Thread.Sleep(1000) ，在2012-12-16 3:37:41的时候，这个线程会 不会被唤醒？
某人的代码中用了一句看似莫明其妙的话：Sleep(0) 。既然是 Sleep 0 毫秒，那么他跟去...]]></description><category></category></item><item><title><![CDATA[C语言malloc()函数与calloc()函数的区别]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/85232798</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/85232798</guid><author>chenxinntu</author><pubDate>Mon, 24 Dec 2018 14:20:34 +0800</pubDate><description><![CDATA[函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。


malloc() 函数有一个参数，是需要分配空间的大小（单位是字节）


 


calloc()函数有两个参数，第一个参数是元素的数目，第二个是每个元素的大小


如果调用成功,函数malloc()和函数calloc()都将返回所分配的内存空间的首地址。

函数malloc()和函数calloc()的主要区别...]]></description><category></category></item><item><title><![CDATA[c++  抽象 继承 封装 多态]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/82938249</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/82938249</guid><author>chenxinntu</author><pubDate>Thu, 04 Oct 2018 16:15:44 +0800</pubDate><description><![CDATA[面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口等

有的人说面向对象有四大基本特征，抽象，封装，继承，多态，但其实抽象可以抛出在外，本质来说，面向对象的基本特征是继承，封装，多态。

先来说C++中的对象和类：

类是对象的抽象，而对象是类的具体化，而要使用类的功能，具体就要先定义一个对象

例如：class Student { }；  Student stu里面的stu就是对象   ...]]></description><category></category></item><item><title><![CDATA[linux c 关键字volatile的含义和作用]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/82931657</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/82931657</guid><author>chenxinntu</author><pubDate>Wed, 03 Oct 2018 14:40:52 +0800</pubDate><description><![CDATA[volatile的作用
一个定义为volatile的变量是说这变量可能会被意想不到地改变，这样，编译器就不会去假设这个变量的值了。精确地说就是，优化器在用到这个变量时必须每次都小心地重新读取这个变量的值，而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子：
  1). 并行设备的硬件寄存器（如：状态寄存器）
  2). 一个中断服务子程序中会访问到的非自动变量(Non-...]]></description><category></category></item><item><title><![CDATA[linux c 关于栈空间和堆空间（指针）]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/82930662</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/82930662</guid><author>chenxinntu</author><pubDate>Wed, 03 Oct 2018 11:13:45 +0800</pubDate><description><![CDATA[一个由C/C++编译的程序占用的内存分为以下几个部分：

1、栈区（stack）：又编译器自动分配释放，存放函数的参数值，局部变量的值等，其操作方式类似于数据结构的栈。
2、堆区（heap）：一般是由程序员分配释放，若程序员不释放的话，程序结束时可能由OS回收，值得注意的是他与数据结构的堆是两回事，分配方式倒是类似于数据结构的链表。
3、全局区（static）：也叫静态数据内存空间...]]></description><category></category></item><item><title><![CDATA[非阻塞socket编程]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/82926867</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/82926867</guid><author>chenxinntu</author><pubDate>Tue, 02 Oct 2018 16:31:53 +0800</pubDate><description><![CDATA[一. 阻塞、非阻塞、异步

阻塞：阻塞调用是指调用结果返回之前，当前线程会被挂起。该进程被标记为睡眠状态并被调度出去。函数只有在得到结果之后才会返回。当socket工作在阻塞模式的时候， 如果没有数据的情况下调用该函数，则当前线程就会被挂起，直到有数据为止。

非阻塞：非阻塞和阻塞的概念相对应，指在不能立刻得到结果之前，该函数不会阻塞当前线程，而会立刻返回。epoll工作在非阻塞模式时，才会发挥作...]]></description><category></category></item><item><title><![CDATA[static关键字的作用]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/82926501</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/82926501</guid><author>chenxinntu</author><pubDate>Tue, 02 Oct 2018 15:38:54 +0800</pubDate><description><![CDATA[在C语言中static的作用如下

第一、在修饰变量的时候，static修饰的静态局部变量只执行一次，而且延长了局部变量的生命周期，直到程序运行结束以后才释放。第二、static修饰全局变量的时候，这个全局变量只能在本文件中访问，不能在其它文件中访问，即便是extern外部声明也不可以。第三、static修饰一个函数，则这个函数的只能在本文件中调用，不能被其他文件调用。Static修饰的局部变量存...]]></description><category></category></item><item><title><![CDATA[Linux 进程内存空间分为那几段？作用分别是什么]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/82926272</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/82926272</guid><author>chenxinntu</author><pubDate>Tue, 02 Oct 2018 15:05:46 +0800</pubDate><description><![CDATA[Linux的内存空间简单可以分为5个部分：

    Text（代码区）：存放可执行的指令操作，其只读不能写
	    Bss（静态区or全局区）：存放未初始化的全局变量和静态变量
	    Data（数据区）：存放初始化的全局变量和静态变量
	    Stack：存放临时变量，函数参数等
	    Heap：存放new/malloc等动态申请的变量，用户必须手动进行delete/free操作。 ...]]></description><category></category></item><item><title><![CDATA[Linux curses库使用]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/82692846</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/82692846</guid><author>chenxinntu</author><pubDate>Thu, 13 Sep 2018 18:40:35 +0800</pubDate><description><![CDATA[版权声明：本文为博主原创文章，未经博主允许不得转载。 https://blog.youkuaiyun.com/byxdaz/article/details/1780449

 相信您在网路上一定用过如 tin,elm 等工具, 这些软体有项共同的特色, 即他们能利用上下左右等方向键来控制游标的位置. 除此之外, 这些程式的画面也较为美观. 对Programming 有兴趣的朋友一定对此感到好奇, 也许他能在 ...]]></description><category></category></item><item><title><![CDATA[Linux c 八种排序]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81736145</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81736145</guid><author>chenxinntu</author><pubDate>Thu, 16 Aug 2018 09:58:02 +0800</pubDate><description><![CDATA[
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;
//冒泡排序
void bubleSort(int data[], int n);
//快速排序
void quickSort(int data[], int low, int high);
int findPos(int data[], int low, int high);
//插入排序
voi...]]></description><category></category></item><item><title><![CDATA[linux c 进程控制编程]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81709748</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81709748</guid><author>chenxinntu</author><pubDate>Wed, 15 Aug 2018 19:35:38 +0800</pubDate><description><![CDATA[pid_t pid;

pid = getpid()获取当前进程ID

pid = getppid()获取父进程ID

fork和vfork：

pid_t vfork(void)
子进程和父进程共享地址空间，一定是子进程先进行，而且要等子进程进行完在进行父进程。一般子进程里要加上指定的
退出方式 比如exit(1)。
pid_t 是vfork的返回值类型，

区别： fork是子进程拷贝父进程，...]]></description><category></category></item><item><title><![CDATA[Linux c 停车场管理系统]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81671250</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81671250</guid><author>chenxinntu</author><pubDate>Tue, 14 Aug 2018 17:35:44 +0800</pubDate><description><![CDATA[ 功能：1 车辆进出登记 2 出入记录 3 候车场 4 查看 停车场及候车场车辆信息及总数 5  查看停留时间最长的车辆 。。。

代码如下


#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
#include&amp;lt;time.h&amp;gt;

#define SIZE   5
#define SUCC...]]></description><category></category></item><item><title><![CDATA[Linux c 通讯录（可保存至文件）]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81671069</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81671069</guid><author>chenxinntu</author><pubDate>Tue, 14 Aug 2018 17:30:46 +0800</pubDate><description><![CDATA[功能：

1 添加信息 2 查找信息 3 查看信息 4 修改信息 5删除信息 6清空信息 7保存至文件及 从文件中读取。。。

main函数文件


#include &quot;adress.h&quot;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

void print(ElemType e)
{
	printf(&quot; num:%d \n&quot;,e);
}
v...]]></description><category></category></item><item><title><![CDATA[Linux c 编写停车场管理系统（有注释）]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81612548</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81612548</guid><author>chenxinntu</author><pubDate>Sun, 12 Aug 2018 23:11:47 +0800</pubDate><description><![CDATA[主要功能；

1 进车登记

2 出车登记（显示当前时间，并显示停留时间和费用）

3 查看停车场车辆信息

4查看候车场停车信息

5 查看有多少车在 停车场外等待

6 查看当前时间停留时间最长的车辆信息

代码如下（）


#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
#include&amp;lt...]]></description><category></category></item><item><title><![CDATA[linux c 获取当前时间及计算时间差]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81586041</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81586041</guid><author>chenxinntu</author><pubDate>Sat, 11 Aug 2018 13:49:13 +0800</pubDate><description><![CDATA[获取当前时间的方法很多：

1 获取当前时间的 时分秒。


#include&lt;stdio.h&gt;
#include&lt;time.h&gt;

int main()
{
    time_t t1,tim;
    struct tm *p;
    time(&amp;t1);
    p = localtime(&amp;t1);
    int Hour = p-&gt;tm_...]]></description><category></category></item><item><title><![CDATA[linux c 双向量表 双向循环链表]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81460003</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81460003</guid><author>chenxinntu</author><pubDate>Mon, 06 Aug 2018 19:46:24 +0800</pubDate><description><![CDATA[双向链表：有两个位置指针，一个指向前一个，一个指向后一个。

头文件：


#ifndef _LINKLIST_H
#define _LINKLIST_H

#define FAILURE    10000
#define SUCCESS    10001
#define TRUE       10002
#define FALSE      10003

typedef int ElemType...]]></description><category></category></item><item><title><![CDATA[linux c 单链表通讯录（排序）]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81435603</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81435603</guid><author>chenxinntu</author><pubDate>Sun, 05 Aug 2018 21:17:45 +0800</pubDate><description><![CDATA[头文件：


#ifndef _ADRESS_H
#define _ADRESS_H
#define SUCCESS 10000
#define FAILURE 10001
#define  TURE   10003
#define FALSE   10004

struct adress
{
	char name[20];
	int num;
	struct adress *next;
};
t...]]></description><category></category></item><item><title><![CDATA[linux c 单链表]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81414900</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81414900</guid><author>chenxinntu</author><pubDate>Sat, 04 Aug 2018 20:25:32 +0800</pubDate><description><![CDATA[头文件：


#ifndef _LINKLIST_H //有头结点
#define _LINKLIST_H
#define SUCCESS 10000
#define FAILURE 10001
#define TURE    10003
#define FALSE   10002

typedef int ElemType;
struct node //定义
{
    int data;
  ...]]></description><category></category></item><item><title><![CDATA[插入排序法]]></title><link>https://blog.youkuaiyun.com/chenxinntu/article/details/81393377</link><guid>https://blog.youkuaiyun.com/chenxinntu/article/details/81393377</guid><author>chenxinntu</author><pubDate>Fri, 03 Aug 2018 19:44:39 +0800</pubDate><description><![CDATA[ 函数文件


int SequenceInsert(ssl *l, ElemType e )//输入并插入排序
{
	int i, tmp;
	if(l == NULL || l-&amp;gt;length &amp;gt;= SIZE)
	{
		return FAILURE;
	}

	for(tmp = 0; tmp &amp;lt; l-&amp;gt;length; tmp++)
	{
		if(e &amp;lt;= l...]]></description><category></category></item></channel></rss>