当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : ubuntu下stat数据结构的问题
帖子发表于 : 2011-04-21 9:33 

注册: 2011-04-13 14:50
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
代码:
#include "apue.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 (stat(argv[i], &buf) < 0)
       {      
             printf("lstat errno\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(st_mode))
          ptr="fifo";
    else if (S_ISLNK(st_mode))
          ptr="symbolic link";
    else if (S_ISSOCK(st_mode))
          ptr="socket";
    else
          ptr="unkown mode";
    printf("%s\n", ptr);
     }
    return 0;
}




APUE上的一段代码,编译时报错:

4-1.c: In function ‘main’:
4-1.c:27: error: ‘st_mode’ undeclared (first use in this function)
4-1.c:27: error: (Each undeclared identifier is reported only once
4-1.c:27: error: for each function it appears in.)

为什么说st_mode未声明?

百思不得其解,请指教。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: ubuntu下stat数据结构的问题
帖子发表于 : 2011-04-21 11:01 
头像

注册: 2009-07-07 19:52
帖子: 240
送出感谢: 0 次
接收感谢: 0 次
仔细检查你的代码。部分代码写的不完整。比如

...
else if (S_ISFIFO(st_mode))
...

应该是

...
else if (S_ISFIFO(buf.st_mode))
...


_________________
阿呆 : 天下第一呆!


页首
 用户资料  
 
3 楼 
 文章标题 : Re: ubuntu下stat数据结构的问题
帖子发表于 : 2011-04-21 12:37 

注册: 2011-04-13 14:50
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
确实是的,看来还是太马虎,谢谢楼上


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译