用stat的时候说storage size isn't know

用gcc就会有这个错误,用g++则不会,这个是为什么?

还有一个比较奇怪的问题就是我学unix网络编程里面把shm_open写进一个函数,函数名Shm_open,就是加了一些错误检查,但是运行的时候段错误?用gdb调试的时候不会有错误,反而运行良好,然后我把那段复制出来,直接写在main里面,这次没用Shm_open,反而没错,为什么?

作者: linyilong3   发布时间: 2011-03-11

少了头文件吧。
应该是storage size of 'xxxx' isn't known,编译器找不到这个xxxx对应的类型,加上正确的头文件应该就可以解决了。

用这个命令看看stat的手册,然后按照里面说的把头文件都加上:
$ man 2 stat
我的系统上显示
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <unistd.h>

作者: bluejays   发布时间: 2011-03-11

段错误的问题就不好说了,有关内存的问题经常就是这样莫名其妙的,一会有问题一会没问题。
只能检查代码

作者: bluejays   发布时间: 2011-03-11