正確使用統計的爲什麼這項工作:基於C
char *fd = "myfile.txt";
struct stat buf;
stat(fd, &buf);
int size = buf.st_size;
printf("%d",size);
但是,這並不工作:
char *fd = "myfile.txt";
struct stat *buf;
stat(fd, buf);
int size = buf->st_size;
printf("%d",size);
請不要使用fd作爲var名稱,而不是文件描述符。 – ninjalj 2010-06-29 07:39:00
如果使用'-Wall -O'進行編譯,則會從gcc獲得此警告:'warning:'buf'在此函數中未使用初始化。 – caf 2010-06-29 08:43:19
儘管內存分配問題是最關鍵的,但在知道'stat()'成功之前,您不應該注意buf的內容(或buf指向的結構),您可以通過檢查其值回報。如果失敗了,buf的內容就沒有意義了。 – 2010-06-29 13:58:31