返回介绍

总结

发布于 2024-10-12 12:11:00 字数 884 浏览 0 评论 0 收藏 0

  1. IO 大类分为网络 IO 和磁盘 IO,IO 对文件来说就是读写操作,写的时候 数据从内存到磁盘 ,读的时候 数据从磁盘到内存

  2. Go 文件 IO 最常用的是 os 库,使用 Go 封装的标准库, os.OpenFile 打开, File.WriteFile.Read 进行读写,操作对象都是 File 结构体;

  3. Go 标准库对 IO 的封装是为了屏蔽复杂的系统调用,提供跨平台的使用姿势。然后单独提供 syscall 库,让程序员自我决策使用要使用更丰富的系统调用功能,当然后果自负;

  4. Go 标准库 IO 操作对象是 File ,系统调用 IO 操作对象是 fd(非负整数)。

  5. Open 文件默认当前偏移量是 0 (文件最开始),加上 O_APPEND 参数之后偏移量会是文件末尾。通过 Seek 调用可以任意指定文件偏移,从而影响文件 IO 的位置;

  6. ReadWrite 函数只有 buffer (buffer 有长度),偏移则使用当前文件偏移量;

  7. PreadPwrite 的系统调用效果等同于 Seek 偏移量然后 ReadWrite ,但是又大有不同。对外语义是原子操作,并且不更新当前文件偏移量;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文