<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Linux_forker的博客]]></title><description><![CDATA[千里之行，始于足下。]]></description><link>https://blog.youkuaiyun.com/Linux_forker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Linux_forker]]></copyright><item><title><![CDATA[fifo实现本地简单聊天程序]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/48066057</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/48066057</guid><author>Linux_forker</author><pubDate>Sat, 29 Aug 2015 00:01:42 +0800</pubDate><description><![CDATA[最近做了一个小练习，要求如下： 
    1.设计协议 
    2.客户端只写公共管道，向服务端发信息 
    3.客户端只读私有管道，接收信息。 
    4.服务端维护用户登录列表 
详细如图： 
1.server#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <s]]></description><category></category></item><item><title><![CDATA[数组与指针1]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/48037349</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/48037349</guid><author>Linux_forker</author><pubDate>Thu, 27 Aug 2015 22:47:54 +0800</pubDate><description><![CDATA[1. 一维数组1.1 本质数据类型是一种构造类型，内存是一段连续的存储区域。数据类型，决定了连续内存的访问方式，包括起始地址，步长，寻址范围。1.2 初始化 int array[10] = {1, 2, 3};  //部分初始化
 int array1[10] = {[3] = 10};
 int array2[10] = {0};  //清零(部分初始化会把其余的元素置0)
 int array3]]></description><category></category></item><item><title><![CDATA[一次重定向引起的异步IO]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/47961797</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/47961797</guid><author>Linux_forker</author><pubDate>Mon, 24 Aug 2015 23:25:11 +0800</pubDate><description><![CDATA[最近在用dup/dup2做IO重定向的时候，由于缓冲区的问题出现了一次异步IO，导致无法正常输出正确的结果。 
先贴出代码：/* 
 * 从文件里面读出1000个随机数，进行排序，再写到另一个文件中(使用dup/dup2)
 *  
 */#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.]]></description><category></category></item><item><title><![CDATA[django1.8使用mysql数据库]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/47086925</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/47086925</guid><author>Linux_forker</author><pubDate>Mon, 27 Jul 2015 16:29:41 +0800</pubDate><description><![CDATA[1.安装mysql$ sudo apt-get install mysql-server2.安装pip$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv //沙盒3.安装django$]]></description><category></category></item><item><title><![CDATA[wait/waitpid函数使用]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/47049413</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/47049413</guid><author>Linux_forker</author><pubDate>Fri, 24 Jul 2015 23:56:45 +0800</pubDate><description><![CDATA[僵尸进程: 子进程退出，父进程没有回收子进程资源（PCB），则子进程变成僵尸进程 
孤儿进程: 父进程先于子进程结束，则子进程成为孤儿进程,子进程的父进程成为1号进程init进程，称为init进程领养孤儿进程       #include <sys/types.h>
       #include <sys/wait.h>       pid_t wait(int *status);]]></description><category></category></item><item><title><![CDATA[gdb调试工具的使用]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/47032197</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/47032197</guid><author>Linux_forker</author><pubDate>Fri, 24 Jul 2015 01:05:50 +0800</pubDate><description><![CDATA[1.gdb介绍GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于，其可以形成执行序列，形成脚本。UNIX的软件全是命令行的，这给程序开发提代供了极大的便利，命令行软件的优势在于，它们可以非常容易的集成在一起，使用几个简单的已有工具的命令，就可以做出一个非常强大的功能。 
于是UNⅨ下的软件比Windows下的软件更能有机地结合，各自发挥各自的长处，组合成更为强劲的功能。而Windows下]]></description><category></category></item><item><title><![CDATA[递归]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/47008263</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/47008263</guid><author>Linux_forker</author><pubDate>Wed, 22 Jul 2015 19:26:50 +0800</pubDate><description><![CDATA[1.递归简介C语言允许一个函数调用其本身。这种调用过程被称作递归。注意当一个函数调用自己时，如果编程中没有设定可以终止递归的条件检测，它会无限制地进行递归调用。递归一般可以替代循环语句使用，有些情况下使用循环语句比较好，而有些时候使用递归更有效。递归方法虽然使程序结构优美，但其执行效率却没有循环语句高。2.一个简单的递归示例#include <stdio.h>void func(int n)
{]]></description><category></category></item><item><title><![CDATA[数组和字符串简单练习]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/46994289</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/46994289</guid><author>Linux_forker</author><pubDate>Tue, 21 Jul 2015 23:36:56 +0800</pubDate><description><![CDATA[在c语言中，字符串不是基本的数据类型，而是以空字符(\0)结尾的char数组。1.倒置一个int数组int main(void)
{
    int array[] = {23, 53, 53, 23, 231, 97, 234};
    int i = 0;    int min = 0;
    int max = sizeof(array) / sizeof(int) - 1;    whi]]></description><category></category></item><item><title><![CDATA[dup&dup2函数的使用]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/46976273</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/46976273</guid><author>Linux_forker</author><pubDate>Mon, 20 Jul 2015 23:41:35 +0800</pubDate><description><![CDATA[dup和dup2都可用来复制一个现存的文件描述符，使两个文件描述符指向同一个file结构体。#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);如果两个文件描述符指向同一个file结构体，File Status Flag和读写位置只保存一份在file结构体中，并且file结构体的引用计数是2。如果两次open同]]></description><category></category></item><item><title><![CDATA[open/close函数的使用]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/46967311</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/46967311</guid><author>Linux_forker</author><pubDate>Mon, 20 Jul 2015 13:49:02 +0800</pubDate><description><![CDATA[1.open函数的使用调用open函数可以打开或创建一个文件       #include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>       int open(const char *pathname, int flags);
       int open(const char *pathname,]]></description><category></category></item><item><title><![CDATA[Linux下helloworld的简单编译过程]]></title><link>https://blog.youkuaiyun.com/Linux_forker/article/details/46966337</link><guid>https://blog.youkuaiyun.com/Linux_forker/article/details/46966337</guid><author>Linux_forker</author><pubDate>Mon, 20 Jul 2015 11:52:08 +0800</pubDate><description><![CDATA[我们在使用gcc生成可执行程序的时候，一般是命令: gcc  *.c, 生成可执行文件a.out 
其实过程可以分为4个步骤，分别是预处理，编译，汇编和链接。下面以最基本的helloworld来简单了解一下编译的过程。1.预编译预编译又称为预处理，是做些代码文本的替换工作。 
处理#开头的指令，比如拷贝#include包含的文件代码，#define宏定义的替换,条件编译等，就是为编译做的预备工作的阶]]></description><category></category></item></channel></rss>