c - 使用读取分配缓冲区 (C)
问题描述
我想知道读取函数是否将缓冲区大小分配给传递给它的缓冲区?我需要知道这一点,以便查看完成后是否需要释放缓冲区。
下面是函数 read 的原型:
ssize_t read(int fildes, void *buf, size_t nbytes);
解决方案
不,读取不进行任何分配。它将数据读取到您作为参数提供的缓冲区中,该缓冲区必须在调用 read 之前由您分配。您可以在堆或堆栈上使用缓冲区,也可以使用全局缓冲区;这是你的选择。
推荐阅读
- sql - pyspark 使用 sql 查询并通过优化进行分组
- python - Python:如何从包含页面@odata.nextLink 的 Odata API 中提取数据
- amazon-web-services - Terraform:depends_on 模块无法在 AWS 中按预期工作
- sql - 如何合并 sql 查询以根据日期获取输出
- java - 如何在 XWPFDocument Apache POI 中旋转图片
- python - 生成器的 max() 是构建类似列表的对象还是工作效率更高?
- python - 如何使用 pandas 在某些列上做 ffil?
- angular - 有没有办法列出 Angular 项目中所有活动的 ESLint / Prettier 规则?
- spring - 嵌套异常是 org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; 糟糕的 SQL 语法
- python - Matplotlib/Seaborn 在 x 轴上绘制一个箱线图,其中包含不同的值类别范围