当文件系统已满时,进程会发生什么

时间:2013-03-21 22:27:43

标签: c linux linux-kernel operating-system signals

如果文件系统已满,进程会发生什么?内核是否向我们发送了一个关闭信号,如果有,则发出什么信号。显然,如果程序写入文件系统,程序可能会崩溃,但我很好奇这是如何发生的(在内核/操作系统详细信息中)。

2 个答案:

答案 0 :(得分:3)

  

如果文件系统填满,进程会发生什么?

在完整分区上需要额外磁盘空间的操作(如创建或附加到文件)失败,errnoENOSPC

没有信号被发送,因为完整的文件系统不是一个必要的信号的关键条件。这是一个例行的,容易处理的错误。

答案 1 :(得分:1)

当文件系统已满时,程序没有理由崩溃。显然文件写入会失败,但编写良好的程序应该能够应对 - 在C中,这意味着fopen返回NULLferror返回非零值我已经多次遇到这种情况,并且可能会发生一些令人讨厌的事情,例如用空白版本覆盖文件,但从不会导致程序崩溃。如果确实发生了,可能是因为该程序的作者试图使用NULL文件描述符或类似的问题,在这种情况下,程序将像往常一样收到SIGSEGV