LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 472|回复: 4

get filesystemname 错误@!

[复制链接]
发表于 2004-5-19 03:32:30 | 显示全部楼层 |阅读模式
两个程序如下:
  1. #include <sys/types.h>
  2. #include <sys/stat.h>
  3. int
  4. main(void)
  5. {
  6.    struct stat buf;
  7.    if(lstat("/dev/ad0s5",&buf)<0) {
  8.         printf("stat /root/fstab error\n");
  9.         exit(1);
  10.    }
  11.    printf("file st_rdev is %s\n",buf.st_dev);
  12.    exit(0);
  13. }
复制代码
  1. #include <sys/types.h>
  2. #include <sys/stat.h>
  3. #include <unistd.h>
  4. int
  5. main(void)
  6. {
  7.    struct stat buf;
  8.    if(lstat("/dev/ad0s5",&buf)<0) {
  9.         printf("stat /root/fstab error\n");
  10.         exit(1);
  11.    }
  12.    printf("file st_rdev is %s\n",buf.st_rdev);
  13.    exit(0);
  14. }
复制代码

两个程序都编译成功,但都有core dumpd..请教怎么修改它?。。。
:help
发表于 2004-5-19 10:44:55 | 显示全部楼层
为什么要用lstat呢?用stat就可以啦。:ask
发表于 2004-5-19 20:27:50 | 显示全部楼层
stat不能处理文件是链接的情况。
我看了一下我的/dev/hda8,是一个连接到ide/host0/bus0/target0/lun0/part8的链接。但直接读取这个文件会失败。估计是由于我使用了devfs,使得这些函数失效了。
发表于 2004-5-19 20:49:05 | 显示全部楼层
FreeBSD就不知道了,上次devel也搞了一个,也不行,不知道是怎么回事
 楼主| 发表于 2004-5-20 16:46:22 | 显示全部楼层
问题解决了,用statfs() or fstatfs()
:rolleyes: :confused: :thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表