前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题:你为什么无法创建一个文件

面试题:你为什么无法创建一个文件

作者头像
somenzz
发布2022-05-24 14:40:10
5360
发布2022-05-24 14:40:10
举报
文章被收录于专栏:Python七号

你好,我是 somenzz,可以叫我征哥,今天看到了一个很好的面试问题,分享给你。

我认为好的面试题,至少符合两点:一是开放性问题,没有标准答案;二是它与具体的技术栈和经验都无关,却能看出一个人的思维过程和技术水平。

“你为什么无法创建一个文件”,就是好问题,而“如何在 NodeJS 中执行 XYZ”或“如何配置 NGINX”,就不是一个好问题。

现在,来梳理一下这个问题。

首先这是一个好问题,好问题没有标准答案,下面的回答也仅供参考。

1、磁盘空间不足

这可能是最简单的答案之一,文件需要保存在磁盘上,无论服务器是 Windows 还是 Linux,无论是本地创建还是远程创建,只要磁盘空间不足,那一定是无法写入文件的。问题的表现通常会看到关键字「Insufficient disk space」排除这个原因很简单,查看磁盘空间即可:

Windows: Wmic logicaldisk

Linux: df -h

2、权限问题

最常见的是 Linux 普通用户在不属于自己家的目录下创建文件会报错,这就是权限问题,Linux 运行一个简单的ls -l 可以看到文件/目录的权限。

ftp、sftp 服务器也会有权限管理,如果无法解决,需要查看服务器的权限配置。

问题的表现通常会有关键字「permission」。

解决办法,配置权限,不建议粗暴的 sudo chmod 777

3、CPU、内存资源耗尽

每个命令通常都会在自己的进程中执行。每个进程都必须有一些资源,并使用一定级别的 CPU 和内存。创建文件同样消耗 CPU 和内存,资源不足时,创建文件的进程长时间处于等待状态,此时也是无法创建文件的,这种情况的现象是卡住,而不是报错。

4、分区问题

分区之后未格式化,或者分区配置错误,此时也是无法写入文件的。

5、网络问题

如果文件系统依赖于网络,网络可能导致服务器之间断开连接,此时也无法写入文件,此外诸如防火墙、安全组、NACL、子网问题,也可能导致写入或读取文件的问题。

6、Linux PID 耗尽

一个操作系统的进行数量是有限的,PID 就是 process id,耗尽就表示进程太多了,无法创建新的进程。我曾经就写了一个 shell 脚本,因为文件名的问题,导致了自己执行自己,结果很快 PID 就不足了,操作系统不接受任何新的操作。

7、Linux Inode 耗尽

一个操作系统的文件数量也是有限的,超过了最大的文件数量,就无法再创建文件。Inode 存储了一个文件或目录的元数据,Inode 的数量很难耗尽,但并不意味着不可能。Linux 运行 df -i 可以查看创建的最大 Inode 数量、当前使用的 Inode 数量和剩余 Inode 的数量。

8、断电

这个原因在自己的台式电脑上也不是没有出现过,哈哈。

最后的话

本文分享了一个好的面试题,希望带给你更多的思考。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python七号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、磁盘空间不足
  • 2、权限问题
  • 3、CPU、内存资源耗尽
  • 4、分区问题
  • 5、网络问题
  • 6、Linux PID 耗尽
  • 7、Linux Inode 耗尽
  • 8、断电
  • 最后的话
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档