
package mainimport ( "log" "os")func main() { fd,_ := os.Create("dump.txt") defer fd.Close() for { buf := make([]byte,1024) _,err := fd.Write(buf) if err != nil { log.Fatalf("%T %v",err,err) } }} 编辑:更新程序为@FUZxxl建议:
package mainimport ( "log" "os" "syscall")func main() { fd,err := fd.Write(buf) if err != nil { log.Printf("%T %v\n",err) errno,ok := err.(syscall.Errno) if ok { log.Println("type assert ok") if errno == syscall.ENOSPC { log.Println("got ENOSPC") } } else { log.Println("type assert not ok") } break } }} 但是,我没有得到预期的结果.这是输出:
2015/02/15 10:13:27 *os.pathError write dump.txt: no space left on device2015/02/15 10:13:27 type assert not ok解决方法 文件 *** 作一般返回
*os.PathError;将错误转换为os.pathError并使用Err字段检查根本原因,如下所示: patherr,ok := err.(*os.pathError)if ok && patherr.Err == syscall.ENOSPC { log.Println("Out of disk space!")} 总结 以上是内存溢出为你收集整理的linux – 在写 *** 作后获取errno全部内容,希望文章能够帮你解决linux – 在写 *** 作后获取errno所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)