[摘要] 由于Linux的独特优势,使越来越多的企业和科研机构把目光转向Linux的开发和研究上。目前Linux最新的稳定内核版本为2.6.17,但是当今绝大部分对于Linux Makefile的介绍文章都是基于2.4内核的,可以说关于2.6内核Makefile相关的文章凤毛麟角,笔者抽时间完成了这篇分析文章,让读者迅速熟悉Linux最新Makefile体系,从而加深对内核的理解,同时也希望能对Linux在公司的推广起到一定的推动作用,算是抛砖引玉吧!
 
1 Makefile组织层次
Linux的Make体系由如下几部分组成:
Ø 顶层Makefile
顶层Makefile通..
类别:linux|阅读(325)|回复(0)|(0)阅读全文>>
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?

 




 void GetMemory(char *p, int num)
{
    p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
    char *str = NULL;
    GetMemory(str, 100);&..
2010-08-23 16:59:27
Linux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这种功能。在本文中,我们将对这个 API 概要进行介绍,并来了解一下如何使用它。
AIO 简介
Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它是 2.6 ..
类别:linux|阅读(28)|回复(0)|(0)阅读全文>>
2010-08-03 22:45:20
这两天有人问以下有什么代码有什么不同?


1 int array[100];

3 memset(array,  0, sizeof(array));
4 memset(&array, 0, sizeof(array));
第3行和第4行有什么不同吗?其实从效果上来说是一样的,但是这里要注意 array 和 &array 的类型是不同的。array 相当于 &array[0],而 &array 是一个指向 int[100] 的指针,类型是 int(*)[100]。
以下代码可以看出这个不同:


 1 #include <stdio.h>
 2 
 3 int main(..
2010-08-02 17:21:23

在一些 C 语言编写的代码中,有时可以看到如下定义的结构:

typedef struct user_def
{
    char * name;
    int length;
    char bytes[0];
}
user_def_t;
这个 bytes 是什么意思?我们知道 0 ==
sizeof(bytes),那么 bytes 仅仅是为了定义结构的尾地址吗?
不是的。这里的 bytes 是作为扩展数组用的。请看如下代码:

int alloc_user_def_t(user_def_t * p, int length)
{
    ..
 <<   1   2   3   4   5   >>   页数 ( 1/7 )

我的技术圈(0)

更多>>

博客统计信息

用户名:gyl1988
文章数:31
评论数:1
访问量:23453
无忧币:20
博客积分:136
博客等级:2
注册日期:2009-09-11