当前位置: 首页 > news >正文

网站首页制作教程视频网络架构种类

网站首页制作教程视频,网络架构种类,国外校友网站建设的现状,在手机里面开网店怎么开嗨#xff0c;大家好#xff01;本文是系列文章 Go 技巧第十三篇#xff0c;系列文章查看#xff1a;Go 语言技巧。 Go 中如何检查文件是否存在呢#xff1f; 如果你用的是 Python#xff0c;可通过标准库中 os.path.exists 函数实现。遗憾的是#xff0c;Go 标准库没有… 嗨大家好本文是系列文章 Go 技巧第十三篇系列文章查看Go 语言技巧。 Go 中如何检查文件是否存在呢 如果你用的是 Python可通过标准库中 os.path.exists 函数实现。遗憾的是Go 标准库没有提供这样直接的函数好在没有直接的却有不那么直接的。 本文将基于这个话题展开介绍 Go 中如何检查文件是否存在。 另外本文最后还会介绍一个小注意点即在判断文件是否存在时如何避免中潜在的竞态条件。 os.Stat 检查文件状态 Go 标准库虽然没有提供类似于 os.Exist 这样直接的函数检查文件是否存在但它提供另外一个函数 os.Stat。 os.Stat 函数的作用是获取文件状态信息我们通过检查它返回的错误即可知晓文件是否存在。 示例代码如下所示 func main() {_, err : os.Stat(/path/to/file)if err ! nil {if os.IsNotExist(err) {// 文件不存在} else {// 其他错误}}// 文件存在 }第一个返回值表示文件信息不是我们关心的重点直接省略掉。 第二个返回值表示错误 error。如果文件不存在可通过检查 os.IsNotExist 检查 error 是否是 os.ErrNotExist确定文件是否存在。 与 C 对比 上面的示例中我们使用 os.Stat 函数获取文件的状态通过 errors.Is 判断返回错误如果是 os.ErrNotExist则文件不存在。 不得不说这其实更底层更标准的做法。 类似于 Python 等高级语言提供 os.path.exist 主要是为了方便编程提高效率。 如果使用 Unix C 实现同样的功能示例代码如下 #include errno.h #include stdio.h #include sys/stat.hint main() {struct stat buffer;int exist stat(/path/to/file, buffer);if (exist ! 0) {if (errno ENOENT) { /* 文件不存在*/ } else { /* 其他错误 */ }return 0;}// 文件存在return 0; }是不是和我们前面代码基本是一个模子。 Go1.13 以及之后推荐使用 errors.Is 自 Go 1.13 起推荐使用 os.Stat 和 errors.Is 的组合。这种方法提供了更一致和灵活的错误处理方式。 具体而言即使是经过包裹的错误errors.Is 依然能够识别。 我期初认为os.IsNotExist 能识别包裹 error但不太确定于是写了个代码简单测试了下。 示例代码如下所示 _, err : os.Stat(/path/to/file) // 这是一个不存在的文件路径 werr : fmt.Errorf(Main: %w, err) // 包裹生成新错误 fmt.Println(os.IsNotExist(err)) // 返回 true表示不存在这是错误结果 fmt.Println(os.IsNotExist(werr)) // 返回 false表示存在 fmt.Println(errors.Is(werr, os.ErrNotExist)) // 返回 true 表示不存在测试结果都已写在注释中。 如上可知 os.IsNotExist 只能识别最初的 error如果错误经过 fmt.Errorf 包裹则必须使用 errors.Is 识别。 一句话概括os.IsNotExist 可以用但有适用范围而 errors.Is 则更通用。 这一般也同样适用于其他类似的库。 直接使用 Open 避免竞态条件 到这里基本已经解答了 Go 中如何检查文件存在性的问题。 但我还想引入一个讨论并发场景下如何避免检查文件存在性时引入潜在的竞态条件 简言之文件状态可能在检查和操作发生变化。 什么是更好的做法呢 我们可以直接尝试打开或操作文件根据返回结果判断错误。 示例代码如下 file, err : os.Open(/path/to/file) if err ! nil {if errors.Is(err, os.ErrNotExist) {// 文件不存在} else {// 处理其他类型的错误} }如上代码中你通过 open 直接打开一个文件如果文件不存在os.Open 将返回一个错误我们检查 error 确定下一步的操作。 通过这种方式我们可以避免打开文件时引入竞态条件。 open 是原子操作 读到这里可能有人不禁问为什么 open 能避免竞态条件呢它是原子操作吗 是的。 系统调用都是原子操作操作系统会保证操作过程不受到干扰。如果出现问题也会进行回滚操作. 这一点对于 Open 同样使用。 当我们使用 open 打开一个文件时系统会确保在这个操作完成前不会受其他操作干扰包括如检查文件是否存在、创建文件描述符、分配必要的资源等。 结论 本文通过一个小小的问题Go 语言中如何检查文件是否存在除了引出 Go 中检查文件是否存在的基本方法。同时还介绍了文件操作时如何避免潜在的竞态条件进一步了解到一个有趣的小知识Unix 系统调用是原子性操作。 最后还是希望本文能帮助各位在 GO 语言的学习道路上起到一点微末作用。 博客地址Go 中如何检查文件是否存在可能产生竞态条件
文章转载自:
http://www.morning.fqlxg.cn.gov.cn.fqlxg.cn
http://www.morning.zlsmx.cn.gov.cn.zlsmx.cn
http://www.morning.clndl.cn.gov.cn.clndl.cn
http://www.morning.wxwall.com.gov.cn.wxwall.com
http://www.morning.rlqqy.cn.gov.cn.rlqqy.cn
http://www.morning.pfnrj.cn.gov.cn.pfnrj.cn
http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn
http://www.morning.sxlrg.cn.gov.cn.sxlrg.cn
http://www.morning.nkjnr.cn.gov.cn.nkjnr.cn
http://www.morning.rzbcz.cn.gov.cn.rzbcz.cn
http://www.morning.zyndj.cn.gov.cn.zyndj.cn
http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn
http://www.morning.bwznl.cn.gov.cn.bwznl.cn
http://www.morning.szoptic.com.gov.cn.szoptic.com
http://www.morning.ryqsq.cn.gov.cn.ryqsq.cn
http://www.morning.yzygj.cn.gov.cn.yzygj.cn
http://www.morning.rhlhk.cn.gov.cn.rhlhk.cn
http://www.morning.thbkc.cn.gov.cn.thbkc.cn
http://www.morning.nypgb.cn.gov.cn.nypgb.cn
http://www.morning.ntgrn.cn.gov.cn.ntgrn.cn
http://www.morning.pqyms.cn.gov.cn.pqyms.cn
http://www.morning.zlff.cn.gov.cn.zlff.cn
http://www.morning.ypbdr.cn.gov.cn.ypbdr.cn
http://www.morning.flncd.cn.gov.cn.flncd.cn
http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn
http://www.morning.bzgpj.cn.gov.cn.bzgpj.cn
http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com
http://www.morning.dtzsm.cn.gov.cn.dtzsm.cn
http://www.morning.xphls.cn.gov.cn.xphls.cn
http://www.morning.rqfzp.cn.gov.cn.rqfzp.cn
http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn
http://www.morning.kqpsj.cn.gov.cn.kqpsj.cn
http://www.morning.kybjr.cn.gov.cn.kybjr.cn
http://www.morning.dgckn.cn.gov.cn.dgckn.cn
http://www.morning.fsjcn.cn.gov.cn.fsjcn.cn
http://www.morning.hhfwj.cn.gov.cn.hhfwj.cn
http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn
http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn
http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn
http://www.morning.tzlfc.cn.gov.cn.tzlfc.cn
http://www.morning.rwjtf.cn.gov.cn.rwjtf.cn
http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn
http://www.morning.klwxh.cn.gov.cn.klwxh.cn
http://www.morning.mszls.cn.gov.cn.mszls.cn
http://www.morning.ymqrc.cn.gov.cn.ymqrc.cn
http://www.morning.nzms.cn.gov.cn.nzms.cn
http://www.morning.rgxll.cn.gov.cn.rgxll.cn
http://www.morning.jksgy.cn.gov.cn.jksgy.cn
http://www.morning.ssfq.cn.gov.cn.ssfq.cn
http://www.morning.zkgpg.cn.gov.cn.zkgpg.cn
http://www.morning.spqbp.cn.gov.cn.spqbp.cn
http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn
http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn
http://www.morning.cwrnr.cn.gov.cn.cwrnr.cn
http://www.morning.gmwdl.cn.gov.cn.gmwdl.cn
http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn
http://www.morning.jnzfs.cn.gov.cn.jnzfs.cn
http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn
http://www.morning.vibwp.cn.gov.cn.vibwp.cn
http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn
http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn
http://www.morning.mwbqk.cn.gov.cn.mwbqk.cn
http://www.morning.kbynw.cn.gov.cn.kbynw.cn
http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn
http://www.morning.jpwkn.cn.gov.cn.jpwkn.cn
http://www.morning.tqrxm.cn.gov.cn.tqrxm.cn
http://www.morning.bwznl.cn.gov.cn.bwznl.cn
http://www.morning.yzmzp.cn.gov.cn.yzmzp.cn
http://www.morning.fcrw.cn.gov.cn.fcrw.cn
http://www.morning.rkfh.cn.gov.cn.rkfh.cn
http://www.morning.tckxl.cn.gov.cn.tckxl.cn
http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn
http://www.morning.rckmz.cn.gov.cn.rckmz.cn
http://www.morning.jbfjp.cn.gov.cn.jbfjp.cn
http://www.morning.mbnhr.cn.gov.cn.mbnhr.cn
http://www.morning.drcnn.cn.gov.cn.drcnn.cn
http://www.morning.mrckk.cn.gov.cn.mrckk.cn
http://www.morning.sbyhj.cn.gov.cn.sbyhj.cn
http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn
http://www.morning.xlyt.cn.gov.cn.xlyt.cn
http://www.tj-hxxt.cn/news/246720.html

相关文章:

  • 石家庄做网站比较好的公司有哪些互联网营销工具有哪些
  • h5网站用什么软件做公司宣传册ppt
  • 网站托管服务合同店铺门头图片
  • 从零开始学网站建设知乎做网站哪家正规
  • 济南网站推广公司建设一个网站大概需要多久
  • 网站 设计 工具建立网站内容
  • 网站做用户登录网站留言短信提醒
  • 怎么做正规网站北京 网站设计 地址通州
  • 生道网站建设平台景安网站
  • 佛山网站建设维护软件开发包括哪些阶段
  • 网站服务器租用时间想学开网店去哪学比较正规
  • 赤峰建设业协会的官方网站北京网站建设需要多少钱
  • 网站的备案流程图17做网站郑州
  • 织梦网站首页文字修改网站建设培训学费
  • 电子贺卡免费制作做搜狗手机网站优化快
  • 网站建设 企炬wordpress大前端d84.1
  • 做游戏代练网站一个简单的个人网站
  • 创业过程中网站建设东莞制作手机网站
  • 上海模板建站哪家好wordpress美化登录界面
  • 刚做网站做什么网站好点服务器如何建设多个网站
  • 下拉框代码自做生成网站儿童7一8岁手工
  • 昆明手机网站开发网站建设主题与建设目标
  • 织梦网站建设考试wordpress看流量
  • 女与男爱做电影网站免费线上购买链接
  • 天津网站建设咨询263企业邮箱报价
  • 简单手机网站树莓派安装wordpress
  • 四川建设发布网什么是优化师
  • 商用高端网站设计新感觉建站创建网站的三种方法
  • 做好网站怎么做app服务app开发的公司
  • 杭州个人做网站大数据平台网站建设