首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何了解/改变熔断器中的缓冲区大小?

如何了解/改变熔断器中的缓冲区大小?
EN

Stack Overflow用户
提问于 2015-08-15 12:23:25
回答 1查看 979关注 0票数 1

我正在为Linux中的FUSE文件系统编写readdir函数。我的想法是在缓冲区中放置任意数量的目录条目,在列出目录(避免对每个文件进行调用)时,将外部程序中的getdents系统数量保持在较低的水平。

FUSE提供函数的缓冲区参数,以及指向filler助手函数(类型为fuse_fill_dir_t )的指针,该函数知道如何处理该缓冲区。

问题是,我不知道如何获取或更改此缓冲区的大小,当缓冲区已满时,filler函数将返回1

注意,我使用一个偏移量来调用filler函数,使用不是一个选项,因为我不想只返回一个getdents调用中的所有目录条目。

代码语言:javascript
复制
filler(buf, d->d_name, NULL, next_offset);

测试会为缓冲区抛出一个102固定的最大条目数,但我不想依赖“神奇”数字,我也不知道这个数字来自哪里。

EN

回答 1

Stack Overflow用户

发布于 2015-08-15 15:14:04

根据getdents() 手册页,缓冲区由调用应用程序提供:

getdents() 系统调用buffer ()将打开的文件描述符fd所引用的目录中的几个linux_dirent结构读取到dirp所指向的缓冲区中。参数计数指定该缓冲区的大小。

因此,getdents()系统的数量将由执行调用的应用程序决定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32024674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档