0

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

4

2 回答 2

3

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

在完整分区上需要额外磁盘空间的操作(如创建或附加到文件)失败并errno显示ENOSPC.

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

于 2013-03-21T22:33:01.807 回答
1

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

于 2013-03-21T22:31:54.413 回答