程序出错的问题
最近在看UNIX环境下的 高级编程,在书的56页有这样一个程序
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(int argc,char** argv)
{
int i;
struct stat buf;
char* ptr;
for (i=1;i < argc ;++i)
{
printf( "%s: ",argv[i]);
if ( lstat(argv[i],&buf) < 0 )
{
printf( "lstat error.\n ");
continue;
}
if (S_ISREG(buf.st_mode)) ptr= "regular ";
else if (S_ISDIR(buf.st_mode)) ptr= "directory ";
else if (S_ISCHR(buf.st_mode)) ptr= "character special ";
else if (S_ISBLK(buf.st_mode)) ptr= "block special ";
else if (S_ISFIFO(buf.st_mode)) ptr= "fifo ";
#ifdef S_ISLNK
else if (S_ISLNK(buf.st_mode)) ptr= "symbolic link ";
#endif
#ifdef S_ISSOCK
else if (S_ISSOCK(buf.st_mode)) ptr= "socket ";
#endif
else ptr= "** unknown mode ** ";
printf( "%s\n ",ptr);