lenovo 回復于:2004-04-07 16:00:57 |
man stat
man fstat |
xiaoen_tang 回復于:2004-04-07 19:43:41 |
long
get_file_size( char * filename ) { struct stat f_stat; if( stat( filename, &f_stat ) == -1 ){ return -1; } return (long)f_stat.st_size; } |
whyglinux 回復于:2004-05-03 16:13:28 |
另一種判斷文件大小的方法。
[code:1:fae3aacbeb] long get_file_size( char* filename ) { FILE* fp = fopen( filename, "r" ); if (fp==NULL) return -1; fseek( fp, 0L, SEEK_END ); return ftell(fp); } [/code:1:fae3aacbeb] |
JohnBull 回復于:2004-05-03 17:25:26 |
先打開文件這種判斷不嚴密,沒有處理打開失敗,有core dump可能。
還是stat直接一些。 |
whyglinux 回復于:2004-05-03 17:43:04 |
同意。只想示例一種方法,沒有考慮到程序的健壯性。
謝謝版主提醒。 |
Amber_star 回復于:2004-09-29 20:15:19 |
按照這種說法, 一個文件的最大長度為2 的32次方 ,就是4G |
Amber_star 回復于:2004-09-29 20:18:44 |
我想在新見一個文件的時候就指定其大小怎么辦呢.lseek 函數好像辦不到的啊,必須在后面寫點東西才能是文件的長度確定下來,請問有其他的法子嗎? |
lenovo 回復于:2004-09-29 20:25:09 |
比如你想要n個字節大小的文件,
你先lseek到n-1字節處,然后隨便write一個字節 就可以了。 |
Amber_star 回復于:2004-09-29 20:30:18 |
那就是要浪費一個字節了 ^_^ |
lenovo 回復于:2004-09-29 20:39:20 |
[quote:99ce2f458d="Amber_star"]那就是要浪費一個字節了 ^_^[/quote:99ce2f458d]
我暈,什么叫浪費呀? |
Amber_star 回復于:2004-09-29 20:55:59 |
ftruncate |
flw 回復于:2004-09-30 13:51:00 |
[quote:0074a56593="Amber_star"]那就是要浪費一個字節了 ^_^[/quote:0074a56593]
看清楚了。 腦子怎么就轉不過彎呢。 |