Go语言核心36讲(Go语言实战与应用二十三)--学习笔记

本文详细介绍了Go语言中os包的使用,特别是文件操作模式如只读、只写、读写模式及其组合,以及如何设置文件权限。os.Create和os.OpenFile函数的使用技巧和背后的实现原理也被探讨,包括os.OpenFile的灵活性和权限模式的设定方法。文章还提出了思考题,引导读者探索如何通过os包创建和操作系统进程。
摘要由CSDN通过智能技术生成

45 | 使用os包中的API (下)

我们在上一篇文章中。从“os.File类型都实现了哪些io包中的接口”这一问题出发,介绍了一系列的相关内容。今天我们继续围绕这一知识点进行扩展。

知识扩展

问题 1:可应用于File值的操作模式都有哪些?

针对File值的操作模式主要有只读模式、只写模式和读写模式。

这些模式分别由常量os.O_RDONLY、os.O_WRONLY和os.O_RDWR代表。在我们新建或打开一个文件的时候,必须把这三个模式中的一个设定为此文件的操作模式。

除此之外,我们还可以为这里的文件设置额外的操作模式,可选项如下所示。

  • os.O_APPEND:当向文件中写入内容时,把新内容追加到现有内容的后边。
  • os.O_CREATE:当给定路径上的文件不存在时,创建一个新文件。
  • os.O_EXCL:需要与os.O_CREATE一同使用,表示在给定的路径上不能有已存在的文件。
  • os.O_SYNC:在打开的文件之上实施同步 I/O。它会保证读写的内容总会与硬盘上的数据保持同步。
  • os.O_TRUNC:如果文件已存在,并且是常规的文件,那么就先清空其中已经存在的任何内容。

对于以上操作模式的使用,os.Create函数和os.Open函数都是现成的例子。

func Create(name string) (*File, error) {
 return OpenFile(name, O_RDWR|O_CREATE|O_TRUNC, 0666)
}

os.Create函数在调用os.OpenFile函数的时候,给予的操作模式是os.O_RDWR、os.O_CREATE和os.O_TRUNC的组合。

这就基本上决定了前者的行为,即:如果参数name代表路径之上的文件不存在,那么就新建一个,否则,先清空现存文件中的全部内容。

并且,它返回的File值的读取方法和写入方法都是可用的。这里需要注意,多个操作模式是通过按位或操作符|组合起来的。

func Open(name string) (*File, error) {
    return OpenFile(name, O_RDONLY, 0)
}

我在前面说过,os.Open函数的功能是:以只读模式打开已经存在的文件。其根源就是它在调用os.OpenFile函数的时候,只提供了一个单一的操作模式os.O_RDONLY。

以上,就是我对可应用于File值的操作模式的简单解释。在 demo88.go 文件中还有少许示例,可供你参考。

package main

import (
	"fmt"
	"io/ioutil"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值