
Linux 下的文件锁
本文内容为 Linux 系统通用,各个语言实现可能稍有不同,但原理相同。 当多个进程或多个程序都想要修同一个文件的时候,如果不加控制,多进程或多程序将可能导致文件更新的丢失。 ...

本文内容为 Linux 系统通用,各个语言实现可能稍有不同,但原理相同。 当多个进程或多个程序都想要修同一个文件的时候,如果不加控制,多进程或多程序将可能导致文件更新的丢失。 ...

结论 $var//=2:等价于 defined($var)||2,即 未定义 时才赋值为 2 ,否则不变( 即使是 0或 空字符串 ) $var||=2 :除非定义且为 true 才不会赋值,否则赋值(比如 0 或 空字符串 时)为2。 //= Step-1 空串 $var=''; $var//=2; print "'$var'\n"; # perl atest4.pl '' Step-2 0 $var=0; $var//=2; print "'$var'\n"; # perl atest4.pl '0' Step-3 1 $var=1; $var//=2; print "'$var'\n"; # perl atest4.pl '1' Step-4 undef $var=undef; $var//=2; print "'$var'\n"; # perl atest4.pl '2' ||= Step-1 空串 $var=''; $var||=2; print $var; # perl atest4.pl 2 Step-2 0 $var=0; $var||=2; print $var; # perl atest4.pl 2 Step-3 1 $var=1; $var||=2; print $var; # perl atest4.pl 1 Step-4 undef $var=undef; $var||=2; print $var; # perl atest4.pl 2

-r: File is readable by effective uid/gid. -w: File is writable by effective uid/gid. -x: File is executable by effective uid/gid. -o: File is owned by effective uid. -R: File is readable by real uid/gid. -W: File is writable by real uid/gid. -X: File is executable by real uid/gid. -O: File is owned by real uid. -e: File exists. -z: File has zero size (is empty). -s: File has nonzero size (returns size in bytes). -f: File is a plain file. -d: File is a directory. -l: File is a symbolic link. -p: File is a named pipe (FIFO), or Filehandle is a pipe. -S: File is a socket. -b: File is a block special file. -c: File is a character special file. -t: Filehandle is opened to a tty. -u: File has setuid bit set. -g: File has setgid bit set. -k: File has sticky bit set. -T: File is an ASCII text file (heuristic guess). -B: File is a "binary" file (opposite of -T). -M: Script start time minus file modification time, in days. -A: Same for access time. -C: Same for inode change time (Unix, may differ for other platforms) 参考文献 Alphabetical Listing of Perl Functions What does if( -f ) in Perl do? perl中 -e, -z, -s, -M, -A, -C, -r, -w, -x, -o, -f, -d , -l 含义

要问何为 Web3,就先从什么味 Web2 和 Web1 来说起吧。 最近在网上看到 Web3 的概念很火热,比肩区块链、元宇宙,其实貌似一整个未来,特意整理一下认为比较好的材料分享出来。 ...

汇集国内主流对象存储、CDN服务价格 话不多说,直接上表格。 价格表(国内HTTPS价格)...

话不多说,直接上表格。 价格表(国内HTTPS价格) 名称 存储免费额度(GB) 存储费用(元 / GB / 日) 流量免费额度 流量费用(元/GB) CDN流量费用 多吉云 10 0.003 20 0.11 0.11 七牛云 10 0.098-0.145 \ 0.29 0.28 腾讯云 \ 0.099-0.118 \ 0.5 0.21 阿里云 \ 0.12 \ 0.25-0.5 0.24 又拍云 \ 0.0043 \ 0.5 0.29 百度智能云 \ 0.119-0.15 \ 0.25-0.49 0.20 注:价格整理于2021年12月30日;存储指对象存储,流量指对象存储公网流出流量。 ...

GitKraken 是一款超好用的 git 可视化(gui)工具,但是官方不提供多语言支持,今天就以 Ubuntu 平台为例介绍一下安装方法。 安装及汉化 首先在 GitKraken 官网下载安装包: GitKraken 官网: https://www.gitkraken.com/ 如果是 debian 系操系统可下载其中的 deb 版本,之后安装即可。 ...

为什么默认配置创建出来的 docker 容器可以访问外网,为什么监听对应端口就能对外暴露docker服务,一张图搞清楚。 首先 Docker 有四中网络模式, 分别是 Bridge、Host、Container、None,默认使用 Bridge,今天就来讲讲 Bridge。 ...

一直弄不清楚这几者的区别,加之现代的三层交换机,就更搞不清楚几者的关系了。 后来发现试图以现代产品的思维理解这几个概念是极其容易混淆的,必须回归到几者最本质的样子,再去拓展才行。 ...

问题重现 在一次简单的代码合并后,发现 Python 项目跑不起来了,报错如下: ssh://root@192.168.226.76:22/usr/bin/python3 -B -u /tmp/pycharm_project_882/mimic_daemon_server/helper_main.py Traceback (most recent call last): File "/tmp/pycharm_project_882/mimic_daemon_server/helper_main.py", line 1, in <module> from mimic_daemon_server import create_app File "/tmp/pycharm_project_882/mimic_daemon_server/__init__.py", line 14, in <module> from mimic_daemon_server.nodes import nodes File "/tmp/pycharm_project_882/mimic_daemon_server/nodes/__init__.py", line 2, in <module> from . import route File "/tmp/pycharm_project_882/mimic_daemon_server/nodes/route.py", line 5, in <module> from mimic_daemon_server.guest_common import ReplicationConfig File "/tmp/pycharm_project_882/mimic_daemon_server/guest_common/__init__.py", line 3, in <module> from .abstract_config import AbstractConfig File "/tmp/pycharm_project_882/mimic_daemon_server/guest_common/abstract_config.py", line 16, in <module> import mimic_daemon_server.qemu_server.Drive File "/tmp/pycharm_project_882/mimic_daemon_server/qemu_server/__init__.py", line 25, in <module> from .QemuConfig import QemuConfig File "/tmp/pycharm_project_882/mimic_daemon_server/qemu_server/QemuConfig.py", line 12, in <module> from mimic_daemon_server.guest_common import AbstractConfig ImportError: cannot import name 'AbstractConfig' from 'mimic_daemon_server.guest_common' (/tmp/pycharm_project_882/mimic_daemon_server/guest_common/__init__.py) 进程已结束,退出代码1 由于我在 Python 领域还是个初学者,没有遇到类似问题,但是根据分析,问题应该是出在了 循环依赖。 ...