自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Linux_forker的博客

千里之行,始于足下。

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

原创 fifo实现本地简单聊天程序

最近做了一个小练习,要求如下: 1.设计协议 2.客户端只写公共管道,向服务端发信息 3.客户端只读私有管道,接收信息。 4.服务端维护用户登录列表 详细如图: 1.server#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <s

2015-08-29 00:01:42 2736 1

原创 数组与指针1

1. 一维数组1.1 本质数据类型是一种构造类型,内存是一段连续的存储区域。数据类型,决定了连续内存的访问方式,包括起始地址,步长,寻址范围。1.2 初始化 int array[10] = {1, 2, 3}; //部分初始化 int array1[10] = {[3] = 10}; int array2[10] = {0}; //清零(部分初始化会把其余的元素置0) int array3

2015-08-27 22:47:54 623

原创 一次重定向引起的异步IO

最近在用dup/dup2做IO重定向的时候,由于缓冲区的问题出现了一次异步IO,导致无法正常输出正确的结果。 先贴出代码:/* * 从文件里面读出1000个随机数,进行排序,再写到另一个文件中(使用dup/dup2) * */#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.

2015-08-24 23:25:11 647

原创 django1.8使用mysql数据库

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$

2015-07-27 16:29:41 1382

原创 wait/waitpid函数使用

僵尸进程: 子进程退出,父进程没有回收子进程资源(PCB),则子进程变成僵尸进程 孤儿进程: 父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为1号进程init进程,称为init进程领养孤儿进程 #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status);

2015-07-24 23:56:45 847

原创 gdb调试工具的使用

1.gdb介绍GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNⅨ下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下

2015-07-24 01:05:50 2059

原创 递归

1.递归简介C语言允许一个函数调用其本身。这种调用过程被称作递归。注意当一个函数调用自己时,如果编程中没有设定可以终止递归的条件检测,它会无限制地进行递归调用。递归一般可以替代循环语句使用,有些情况下使用循环语句比较好,而有些时候使用递归更有效。递归方法虽然使程序结构优美,但其执行效率却没有循环语句高。2.一个简单的递归示例#include <stdio.h>void func(int n){

2015-07-22 19:26:50 1839

原创 数组和字符串简单练习

在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

2015-07-21 23:36:56 557

原创 dup&dup2函数的使用

dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。#include <unistd.h>int dup(int oldfd);int dup2(int oldfd, int newfd);如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。如果两次open同

2015-07-20 23:41:35 802

原创 open/close函数的使用

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,

2015-07-20 13:49:02 12737

原创 Linux下helloworld的简单编译过程

我们在使用gcc生成可执行程序的时候,一般是命令: gcc *.c, 生成可执行文件a.out 其实过程可以分为4个步骤,分别是预处理,编译,汇编和链接。下面以最基本的helloworld来简单了解一下编译的过程。1.预编译预编译又称为预处理,是做些代码文本的替换工作。 处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等,就是为编译做的预备工作的阶

2015-07-20 11:52:08 1267

空空如也

空空如也

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

TA关注的人

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