摘要: #include <stdio.h>#include <stdlib.h>#include <stdio.h>#include <stdlib.h>typedef struct List{ struct List *next; int data;}List;List *creatList(int *arr, int len){ List *head, *p; List *s; int i; head = (List *)malloc(sizeof(List)); head->next = NULL; p = head; fo... 阅读全文
posted @ 2012-10-28 23:48 柯枫 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做 阅读全文
posted @ 2012-10-28 20:00 柯枫 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 constint* p; (推荐)intconst* p; 第一种可以理解为,p是一个指针,它指向的内容是constint类型。p本身不用初始化它可以指向任何标示符,但它指向的内容是不能被改变的。 第二种很容易被理解成是p是一个指向int的const指针(指针本身不能被修改),但这样理解是错误的,它也是表示的是指向const的指针(指针指向的内容是不能被修 阅读全文
posted @ 2012-10-28 15:45 柯枫 阅读(206) 评论(0) 推荐(0) 编辑
摘要: c 内存分配1、程序代码区:存放函数体的二进制代码。2、全局区数据区:全局数据区划分为三个区域。 全局变量和静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统释放。我们所说的BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。3、栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。4、堆区:一般由程序员分配释放,若程序员不释 阅读全文
posted @ 2012-10-28 14:58 柯枫 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果取它的值的话需要访问两次内存,第一次取从0x00000002-0x00000003的一个short,第二次取从0x00000004-0x00000... 阅读全文
posted @ 2012-10-28 14:45 柯枫 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 1字节序由于不同的计算机系统采用不同的字节序存储数据,同样一个4字节的32位整数,在内存中存储的方式就不同. 字节序分为小尾字节序(Little Endian)和大尾字节序(Big Endian), Intel处理器大多数使用小尾字节序, Motorola处理器大多数使用大尾(Big Endian)字节序;小尾就是低位字节排放在内存的低端,高位字节排放在内存的高端。例如一个4字节的值为0x1234567的整数与高低字节对应关系:01234567Byte3Byte2Byte1Byte0高位字节--à---------à--------------à低位字节将在内存中 阅读全文
posted @ 2012-10-28 11:18 柯枫 阅读(1897) 评论(0) 推荐(0) 编辑
摘要: 1、 简介OCFS2是下一代的ORACLE集群文件系统,它已经被设计成为一种为通用的文件系统。OCFS2能使运行在集群中所有节点并发的通过标准文件系统接口来访问存储备。2、下载OCFS2的发行版包括了2个安装包,一个称为核心模块,另一个叫工具包。核心模块链接下载:http://oss.oracle.com/projects/ocfs2/files/工具包链接下载:http://oss.oracle.com/projects/ocfs2-tools/files/首先要下载相应的软件包,对于核心模块,下载时要考虑它的发行号,适用的平台,操作系统内核版本以及内核的类型(比如SMP,HUGEMEM,P 阅读全文
posted @ 2011-12-29 16:38 柯枫 阅读(7391) 评论(1) 推荐(0) 编辑
摘要: 用法:parted [选项]... [设备 [命令 [参数]...]...]将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行.帮助选项:-h, --help 显示此求助信息-l, --list 列出所有设别的分区信息-i, --interactive 在必要时,提示用户-s, --script 从不提示用户-v, --version 显示版本操作命令:检查 MINOR#对文件系统进行一个简单的检查cp [FROM-DEVICE] FROM-MINOR TO-MINOR#将文件系统复制到另一个分区help [COMMAND]#打印通用求助信息,或关于 COMMAND 的 阅读全文
posted @ 2011-12-29 13:16 柯枫 阅读(50281) 评论(0) 推荐(0) 编辑
摘要: 运算符描述示例文件比较运算符-efilename如果filename存在,则为真[ -e /var/log/syslog ]-dfilename如果filename为目录,则为真[ -d /tmp/mydir ]-ffilename如果filename为常规文件,则为真[ -f /usr/bin/grep ]-Lfilename如果filename为符号链接,则为真[ -L /usr/bin/grep ]-rfilename如果filename可读,则为真[ -r /var/log/syslog ]-wfilename如果filename可写,则为真[ -w /var/mytmp.txt ]- 阅读全文
posted @ 2011-12-07 09:44 柯枫 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut是以每一行为一个处理对象的,这种机制和sed是一样的。 cut命令主要是接受三个定位方法: 第一,字节(bytes),用选项-b 第二,字符(characters),用选项-c 第三,域(fields),用选项-f 阅读全文
posted @ 2011-12-06 13:54 柯枫 阅读(3029) 评论(0) 推荐(0) 编辑