由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C语言大文件如何得到文件大小?
相关主题
C语言,结构体转字符串。简单的难题Linux Makefile: How to include cpp files in subfolder for (转载)
请教一个fseek和_fseeki64的问题Gcc出来的exe,被防病毒软件block了......
windows下的Gcc界面叫什么来?windows 7 下面大家都用什么C编程软件?
C++ question你们为啥要用cygwin?
question overloading ++ error面试被问到G++和GCC编译器的关系
关于用 Eclipse 开发C++ 程序C/C++ __int64和long long, cross platform问题
MinGW在win7上就是一个垃圾Linux下有办法通过C/C++得到已经调入内存的library的full path么
Eclipse JNI问题, 拜谢stack overflow problem
相关话题的讨论汇总
话题: fseek话题: file话题: vc话题: __话题: 编译
进入Programming版参与讨论
1 (共1页)
g*****u
发帖数: 298
1
long size;
fseek (f, 0, SEEK_END );
size = ftell(f);
在windows下用VC编译,加入了编译选项-D_FILE_OFFSET_BITS=64, 可是超过2G的文件
得不到正确大小。应该怎么写?
那些带64的函数版本是POSIX C标准里的么?VC的C库没有。在GNU C下,是不是编译的
时候加入大文件选项,fseek就是fseek64?
还有,我用循环每次读一个字符
while( !feof(f) )
{
ch = fgetc(f);
count++;
}
最后count的结果比用上面fseek的出来的结果小,不同结果小的不一样,有的差2,有
的差十好几,这是怎么回事?
c*****t
发帖数: 1879
2
I guess that you may have to write your own macros to deal with
cross platform issues since long is usually only 32-bit on 32-bit
machines. Or maybe consider using autoconf.
MinGW has
_CRTIMP __int64 __cdecl __MINGW_NOTHROW _ftelli64 (FILE*);
VS9:
_Check_return_ _CRTIMP __int64 __cdecl _ftelli64(_Inout_ FILE * _
File);
SunOs 5.1:
extern off64_t ftello64(FILE *);

【在 g*****u 的大作中提到】
: long size;
: fseek (f, 0, SEEK_END );
: size = ftell(f);
: 在windows下用VC编译,加入了编译选项-D_FILE_OFFSET_BITS=64, 可是超过2G的文件
: 得不到正确大小。应该怎么写?
: 那些带64的函数版本是POSIX C标准里的么?VC的C库没有。在GNU C下,是不是编译的
: 时候加入大文件选项,fseek就是fseek64?
: 还有,我用循环每次读一个字符
: while( !feof(f) )
: {

g*****u
发帖数: 298
3
谢谢!我从哪里能统一查到这些函数?它们都是posix C标准中的么?
还有,为什么fseek得到的大小和循环计数的出来的不一样呢?在GCC下,fseek出来的
值比循环计数的小1,但是VC的就没准,这是什么问题?
t****t
发帖数: 6806
4
C FAQ, 12.2

【在 g*****u 的大作中提到】
: 谢谢!我从哪里能统一查到这些函数?它们都是posix C标准中的么?
: 还有,为什么fseek得到的大小和循环计数的出来的不一样呢?在GCC下,fseek出来的
: 值比循环计数的小1,但是VC的就没准,这是什么问题?

l*****a
发帖数: 2
5
可是我的问题是循环得到的count比fseek的小,而不是大啊。这是VC的C编译出来的,
不同编译器结果不确定,GCC出来的就是循环得到的count比fseek的大1。
b****o
发帖数: 403
6
function stat/fstat
1 (共1页)
进入Programming版参与讨论
相关主题
stack overflow problemquestion overloading ++ error
c++逐渐没落?关于用 Eclipse 开发C++ 程序
问问g++, gcc, cc之间的关系MinGW在win7上就是一个垃圾
随手写的C程序,请指教Eclipse JNI问题, 拜谢
C语言,结构体转字符串。简单的难题Linux Makefile: How to include cpp files in subfolder for (转载)
请教一个fseek和_fseeki64的问题Gcc出来的exe,被防病毒软件block了......
windows下的Gcc界面叫什么来?windows 7 下面大家都用什么C编程软件?
C++ question你们为啥要用cygwin?
相关话题的讨论汇总
话题: fseek话题: file话题: vc话题: __话题: 编译