小编Bru*_*uce的帖子

golang os.Create 导致“没有这样的文件或目录”错误

一定很简单,但我似乎无法弄清楚。我不断收到“没有这样的文件或目录”错误。以为 Create 功能是创建一个新文件?

package main

import (
    "log"
    "os"
)

func main() {
    f, err := os.Create("~/golang-server.log")
    defer f.Close()
    if err != nil {
        panic(err.Error())
    }
    log.SetOutput(f)
}
Run Code Online (Sandbox Code Playgroud)

file go

5
推荐指数
1
解决办法
9370
查看次数

Golang os.Create权限被拒绝

我正在尝试在linux/var/log目录下创建一个日志文件,但是被拒绝了.任何最佳实践,而无需更改目录的所有权?

f, _ := os.Create("/var/log/go_server.log")
defer f.Close()
log.SetOutput(f)
Run Code Online (Sandbox Code Playgroud)

linux file go permission-denied

0
推荐指数
1
解决办法
2667
查看次数

在golang中的缓冲通道上并发读取时发生冲突?

我有一个缓冲的通道,可以通过多个(在此示例中为4)go例程读取。

queue := make(chan string, 10000) // a large buffered channel
Run Code Online (Sandbox Code Playgroud)

每个go例程都会检查通道中可用的元素数量,并对所有元素进行处理。

for i :=0; i< 4; i++{ // spun 4 go routines
    go func() {
        for {
            for elem := range queue {
                // do something with the elem from the channel
            }
         }
     }
  }
Run Code Online (Sandbox Code Playgroud)

多个go例程会在读取时发生冲突吗?换句话说,不同的go例程可以在通道中捕获相同的元素,还是一个go例程正在读取缓冲区,而另一个go例程已经读取并处理了某些元素?如何在阅读一个go例程的同时阻止其他go例程读取?

channel go goroutine

-1
推荐指数
1
解决办法
1104
查看次数

标签 统计

go ×3

file ×2

channel ×1

goroutine ×1

linux ×1

permission-denied ×1