1
我是Linux API編程的新手。我試圖實現一個錯誤情況,其中32位readdir()API試圖讀取大於2 GB的文件。readdir嘗試讀取大於2 GB的文件的API
這裏是一個大的文件,該文件是大於2 GB的方案
- 調用32位READDIR API。
當32位readdir API嘗試讀取大於2 GB的文件時拋出的錯誤消息是什麼。它是EOVERFLOW嗎?
readdir的dirent返回值是什麼?它是NULL嗎?
int i;
FILE *fp;
DIR *dir;
struct dirent *dirp;
int errno;
dir=opendir("/home/tmp-dir"); ==> which has large files greater than 2GB
for(i=1;i<=15;i++)
{
errno = 0;
dirp=readdir(dir);
printf(" File name = %s Error Number = %s \n", dirp->d_name,
strerror(errno));
if (errno!= EOVERFLOW)
{
printf("**readdir: readdir() set errno to %d (%s) Expected
EOVERFLOW (%d) \n", errno, strerror(errno),
EOVERFLOW);
}
}
closedir(dir);
return (0);
}
我在想讀取大於2 GB的文件時,32位readdir API將顯示EOVERFLOW。請糾正我的理解