系统调用sys_getdents的第三个参数是甚么意义?怎么设置?

来源:百度知道 编辑:UC知道 时间:2024/05/28 20:44:38
第三个参数说是内存区域的大小,但是如果这个值设置过大或者过小都会出错。
例如我的文件夹里有26个文件,第三个参数设置小于32,就会返回错误代码;如果设置大于35,只能读取部分文件。另外,文件数增加此数据范围就会发生变化
请问这个数字应该如何设置?请教各位!

int sys_getdents(unsigned int fd, struct dirent *dirp,unsigned int count)
其中fd为指向目录文件的文件描述符,该函数根据fd所指向的目录文件读取相应dirent结构,并放入dirp中,其中count为dirp中返回的数据量,正确时该函数返回值为填充到dirp的字节数。