小编典典

由于您链接到2.7文档,因此我假设您使用的是2.7。(在Python 3.x中,这一切都变得更加简单,因为在Python级别上公开了更多的缓冲。)

所有open实际上做(在POSIX系统)是调用fopen,然后,如果你已经通过了什么buffering,setvbuf。由于您没有传递任何内容,因此只能得到来自的默认缓冲区fopen,该缓冲区取决于您的C标准库。(有关详细信息,请参见源。如果没有buffering,它将-1传递给PyFile_SetBufSize,除非不执行任何操作`bufsize

= 0`。)

如果您阅读了glibc手册setvbuf页,它说明了如果您从不调用任何缓冲功能:

通常,所有文件都是块缓冲的。当第一次I / O操作发生在文件上时,malloc将调用(3),并获得一个缓冲区。

注意,它没有说获得了什么大小的缓冲区。这是故意的;这意味着实现可以很聪明,并针对不同情况选择不同的缓冲区大小。(有一个BUFSIZ常量,但是仅当您调用诸如setbuf;之类的遗留函数时才使用该常量。不能保证在任何其他情况下都可以使用它。)

那么, 会

发生什么呢?好吧,如果您查看glibc源代码,最终它将调用该宏_IO_DOALLOCATE,该宏可以被挂接(或被覆盖,因为glibc统一了C

++ streambuf和C stdio缓冲),但是最终,它分配了buf _IO_BUFSIZE,这是buf

的别名。特定于平台的宏_G_BUFSIZE,即8192。

当然,您可能希望在自己的系统上查找宏,而不是信任通用源。

您可能想知道为什么没有很好的记录方法来获取此信息。大概是因为您不应该在乎。如果需要特定的缓冲区大小,则可以手动设置一个大小。如果您相信系统最了解,那就相信它。除非您实际上在内核或libc上工作,否则谁在乎?从理论上讲,这也使系统在这里可以做一些聪明的事情成为可能,例如根据文件文件系统的块大小甚至基于运行的统计数据选择bufsize,尽管它看起来不像linux

/ glibc ,FreeBSD或OS X可以使用常量以外的任何功能。这很可能是因为对于大多数应用程序而言,这实际上并不重要。

2020-06-03

linux open 缓冲区,Linux上文件的默认缓冲区大小相关推荐

  1. linux 创建目录 默认权限,如何设置UNIX/Linux中新创建目录或文件的默认权限

    在unix或者linux中,每创建一个文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,那么这些默认权限是怎么控制的呢? 答案是"umask"权限掩 ...

  2. linux系统默认的创建目录的权限是什么,Linux—用户新建目录和文件的默认权限设置:umask详解...

    关注微信公众号:CodingTechWork,一起学习进步. 引言 我们有没有思考过一个问题,在登录Linux系统后,我们创建的目录或者文件的权限,为什么每次创建都是统一的?我们做以下实验:新建一个用 ...

  3. Linux如何查询目录默认权限,如何设置UNIX/Linux中新创建目录或文件的默认权限

    在unix或者linux中,创建一个新文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,这些默认权限是由umask(权限掩码)来控制的,一般umask默认值为022,其 ...

  4. vmware传东西到linux后文件变小,在VMWARE的Linux虚拟机上删除大容量文件后硬盘空间大小还不变怎么办?虚拟机虚拟机的各种应用及问题...

    我的Linux系统刚开始装起来后,占了4个G的硬盘空间(装在F盘上),后来在linux上装了个软件后,大概共占了8G的空间,后来又装了其他东西,现在大概达到了14G空间.我现在电影都没地方放了,所以想 ...

  5. web 上传文件到linux没权限,Javaweb上传文件到Linux 没有读写权限

    一. 问题描述 背景描述: 0.saas-business-运营后台,website-网站页面. 1.javaweb程序(saas-business)部署在linux系统 tomcat服务器下,使用该 ...

  6. Git 提交失败提示无写入权限与 Linux 下创建文件的默认权限

    2019独角兽企业重金招聘Python工程师标准>>> 最近给公司部署了 git 服务器(CentOS 6.3),由于之前没有配置 git server 的经验,搞了半天才把配置搞定 ...

  7. 在linux中查找重复的文件夹,如何在Linux上找出并删除重复的文件:FSlint

    大家好,今天我们会学习如何在Linux PC或者服务器上找出和删除重复文件.这里有一款工具你可以工具自己的需要使用. 无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重 ...

  8. 如何在Linux中使用sFTP上传或下载文件与文件夹

    如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过 ...

  9. linux默认头文件,Linux安装合适内核头文件的方法

    摘要 腾兴网为您分享:Linux安装合适内核头文件的方法,桌面时钟,中建在线,圆通金刚,西餐菜谱等软件知识,以及万象,我不信表情包,兔子洞,服你网,电商直播app,网络工具箱,ffu文件,电脑功率计算 ...

最新文章

  1. Sth about Haml
  2. win10 uwp 按下等待按钮
  3. 网站文章中如何设置关键词才更有利于SEO优化?
  4. mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储...
  5. Python-Day3-数据类型
  6. Learning To Rank之LambdaMART的前世今生
  7. MTU 和 MSS 区别
  8. python 白化_MeteoInfo和Python显著性检验
  9. linux中在工作空间编译cpp,linux tensorflow2.4.0 c++ 编译
  10. uefi装原版win8.1怎么装|uefi gpt启动模式安装win8原版系统步骤
  11. python运用maya_Maya中Python脚本的使用(一)
  12. 云时代的大数据存储-云HBase
  13. hdu 4640 Island and study-sister(状态压缩dp)
  14. 开发环境搭建3:linux下tuxedo安装
  15. Stanford CoreNLP服务器
  16. (转自MBA智库百科)弗兰克·吉尔布雷斯
  17. 【GitHub】README.md文件中 markdown语法 插入超链接
  18. python-docx处理word文档功能详细说明
  19. uWSGI, Gunicorn,ngnix 服务器 详解
  20. [原]海纳百川 有容乃大:SparkR与Docker的机器学习实战

热门文章

  1. ​不唯SCI,博士生要怎么培养?当我们反对SCI至上时,我们到底在反对什么?...
  2. 2 分 31 秒,腾讯云创造 128 卡训练 ImageNet 新记录
  3. 1357篇ECCV 2020论文打包下载!奖项公布:李飞飞高徒获最佳论文奖
  4. 86岁还在录网课:MIT教授Gilbert Strang最新「线性代数」课程上线
  5. 用 Pytorch 理解卷积网络
  6. 带你少走弯路:五篇文章学完吴恩达机器学习
  7. 【每日一算法】二叉树的最小深度
  8. Django博客系统(写博客页面展示分类)
  9. python中的counter()、elements()、most_common()和subtract()函数的用法
  10. 本地应用 v-model