我正在开发一个运行在HP Nonstop上的C应用程序,它需要获取磁盘上的文件大小。已经实施的方法如下:
char *filename; short itemlist; long fileLength = 0; short retCode; itemlist = 142; /* file size */ retCode = FILE_GETINFOLISTBYNAME_( filename, (short)strlen(filename), &itemlist, 1, (short*)&fileLength, sizeof(fileLength) );
正如我在文档中看到的,这只适用于大小不超过2GB的文件:
如果所引用的文件是大于大约2GB的[…]OSS文件,则项目代码将返回-1,没有错误指示。
因此,我的问题是:
- 如何获取大于2GB的文件大小?
-
有没有办法了解
FILE_GETINFOLISTBYNAME_
是如何实现的?也许可以为大型文件编写自己的实现。