{ "@context": "https://schema.org", "@type": "Article", "headline": "限制频率将标准输出写入磁盘文件", "datePublished": "2024-02-26T10:30:20", "dateModified": "2024-02-26T10:30:20", "description": "对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《限制频率将标准输出写入磁盘文件》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!问题内容if file, err := os.create(os.tempdir() + /stdout.txt); nil == err { // todo buffer write os.stdout = file os.stderr = fil", "publisher": { "@type": "Organization", "name": "Golang学习网", "url": "https://m.17golang.com" }, "mainEntityOfPage": { "@type": "WebPage", "@id": "https://m.17golang.com/article/101561.html" } }
登录
首页 >  Golang >  Go问答

限制频率将标准输出写入磁盘文件

来源:stackoverflow

时间:2024-02-26 10:30:20 226浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《限制频率将标准输出写入磁盘文件》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

if file, err := os.create(os.tempdir() + "/stdout.txt"); nil == err {
  // todo buffer write
  os.stdout = file
  os.stderr = file  
} else {
  log.fatal(err)
}

这会将进程的输出写入磁盘,但是如果没有频率控制,可能会对磁盘造成沉重的负担。如何给写操作添加缓冲区?

问题是os.stdout不是一个接口,而是*os.file

os.Stdout = bufio.NewWriter(file) // error

解决方案


您没有详细指定您实际想要对编写器进行哪些限制,但您可以使用标准库中的 bufio.Writer 添加一个缓冲区来批量写入,直到它们达到一定大小。一个小的实现注意事项是,在关闭底层写入器之前必须小心刷新缓冲区,以避免丢失输出数据。

以上就是《限制频率将标准输出写入磁盘文件》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>