一、源代码:
<bldc:/home/tingbinz/apue.3e/SBSCODE/4>R*_*G:vim 4_3.c
1 #include "apue.h"
2 #include <sys/stat.h>
1 #include "apue.h"
2 #include <sys/stat.h>
3 int main(int argc, char *argv[])
4 {
5 int i;
6 char *ptr;
7 struct stat buf;
8
9 for (i = 1; i < argc; ++i)
10 {
11 printf("%s:",argv[i]);
12 if ( lstat(argv[i],&buf) < 0 )
13 err_sys("lstat error");
14 if( S_ISREG(buf.st_mode) )
15 ptr = "regular file";
16 else if ( S_ISCHR(buf.st_mode))
17 ptr = "character specia";
18 else if ( S_ISBLK(buf.st_mode) )
19 ptr = "block special";
20 else if ( S_ISSOCK(buf.st_mode) )
21 ptr = "socket";
22 else
23 ptr = "unknown mode****";
24
25 printf("%s\n",ptr);
26 }
27
28 exit(0);
29
30 }
31
~
二、运行结果
<bldc:/home/tingbinz/apue.3e/SBSCODE/4>R*_*G:./4_3 /etc/passwd
/etc/passwd:regular file
<bldc:/home/tingbinz/apue.3e/SBSCODE/4>R*_*G:./4_3 /etc/passwd /etc/ /dev/log /dev/tty \
<MORE>/var/lib/oprofile/opd_pipe /dev/sr0 /dev/cdrom
/etc/passwd:regular file
/etc/:unknown mode****
/dev/log:character specia
/dev/tty:character specia
/var/lib/oprofile/opd_pipe:lstat error: No such file or directory
<bldc:/home/tingbinz/apue.3e/SBSCODE/4>R*_*G:./4_3 /etc/passwd /etc /dev/log /dev/tty /dev/sr0 /dev/cdrom
/etc/passwd:regular file
/etc:unknown mode****
/dev/log:character specia
/dev/tty:character specia
/dev/sr0:lstat error: No such file or directory
<bldc:/home/tingbinz/apue.3e/SBSCODE/4>R*_*G:./4_3 /dev/cdrom
/dev/cdrom:lstat error: No such file or directory
<bldc:/home/tingbinz/apue.3e/SBSCODE/4>R*_*G: