【发布时间】:2017-09-19 13:26:58
【问题描述】:
我有一个应用程序从文件中读取 IP 和端口,然后打开与读取地址的 HTTP 连接。为了更加确定我正在连接到我想要连接的服务器,我只想信任文件的内容,如果它由 root 拥有并且不能被其他任何人写入。
我可以使用 fs.stat 检查所有者和模式,然后读取文件内容,但这会引入竞争条件。
有没有办法自动检查所有者和模式并读取文件内容?
【问题讨论】:
我有一个应用程序从文件中读取 IP 和端口,然后打开与读取地址的 HTTP 连接。为了更加确定我正在连接到我想要连接的服务器,我只想信任文件的内容,如果它由 root 拥有并且不能被其他任何人写入。
我可以使用 fs.stat 检查所有者和模式,然后读取文件内容,但这会引入竞争条件。
有没有办法自动检查所有者和模式并读取文件内容?
【问题讨论】:
我不认为fs.stat 是在引入竞争条件,因为您只是在阅读它而不是在上面写字,所以我认为您找到的解决方案是目前最好的解决方案。
您可以添加一个布尔变量来检查函数是否仍在“读取”文件(读取后应设置布尔值),以避免出现问题。
【讨论】:
fs.stat 2. 另一个进程运行 chmod 3. 我的节点进程读取文件内容,就会出现竞争条件