stat 函数是获取文件信息的函数。原型是
int stat(const char *path,struct stat *buf)
path 是文件的路径, buf是返回的一个结构体文件信息。
我调用的方法是:
1.
struct stat *pbuf;
stat("/root",pbuf);
2.
struct stat buf
stat("/root",&buf);
用方法1调用后,pbuf里面的信息会有错误,用方法2调用,就完全正确。
本来以为对指针了解算不错的,结果悲剧了。。第二次遇到这种问题,仍然是不明白。。。求指教。
------解决方案--------------------------------------------------------
int stat(const char *path,struct stat *buf)
这个函数内部不会申请 struct stat 空间。
你要是只传递一个struct stat *pbuf;指针进去,这个指针并没有指向有效空间,在函数内部直接操作赋值这个指针就会出问题。
你可以 先 pbuf= new struct stat;
或者 pbuf=(struct stat*)malloc(sizeof(struct stat));