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