我正在开发一个运行在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_是如何实现的?也许可以为大型文件编写自己的实现。