文件描述符问题 在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉 C/C++ 的 程序员 ,并不陌生。有一些关于 Watchpoint 和文件描述符的内容,可能会让你看得比较模糊,对于 Watchpoint ,我会在后面讲述。这一节,我就一个示例" name="description" />

C/C++内存问题检查利器—Purify文件描述符问题

发表于:2009-04-20来源:作者:点击数: 标签:符问题利器文件Purify内存
MI LY: 宋体"> 文件描述符问题 在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉 C/C++ 的 程序员 ,并不陌生。有一些关于 Watchpoint 和文件描述符的内容,可能会让你看得比较模糊,对于 Watchpoint ,我会在后面讲述。这一节,我就一个示例

MILY: 宋体">文件描述符问题

在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉C/C++程序员,并不陌生。有一些关于Watchpoint和文件描述符的内容,可能会让你看得比较模糊,对于Watchpoint,我会在后面讲述。这一节,我就一个示例说一说文件描述述问题是如何产生的,并由此介绍一下Purify的一些特性。

 

先查看下面这段程序:

 

#include <stdio.h>

 

main()

{

    FILE* fp;

    int num;

 

    fp = fopen("./test.txt", "r");

    if ( fp == NULL){

        perror("Error:");

        exit(-1);

    }

 

    fscanf(fp, "%d", &num);

    if ( num < 0 ){

       printf("Error: the num should be greater than 0!\n");

       exit(-1);

    }

 

    fclose(fp);

}

 

在当前目录下建一个test.txt的文件,并设置其内容为-20。使用Purify编译并运行程序:

>  purify gcc -g -o testfd testfd.c

Purify 2003.06.00 Solaris 2 (32-bit) Copyright (C) 1992-2002 Rational Software Corp.  All rights reserved. 

Instrumenting: ccqqF6pY.o  Linking

 

>./testfd

 

原文转自:http://www.ltesting.net