コアマンページ(5)コアダンプファイルが生成されない理由の1つは次のとおりです。
コアダンプに使用されているのと同じ名前の(書き込み可能、一般)ファイルがすでに存在しますが、そのファイルへの複数のハードリンクがあります。
同じ名前の既存のファイルへの書き込みが可能であれば、上書きできるという意味ですか?
ハードリンク数はコアダンプファイルの生成にどのような影響を与えますか?
core
次の例では、コアダンプで上書きされないように、他のハードリンクなしでファイルを作成します。
$ ls
$ touch core
$ ls -l
total 0
-rw-rw-r-- 1 t t 0 Dec 3 06:01 core
$ # wait for a minute
$ bash -c "ulimit -c -S; ulimit -S -c 1024; ulimit -c -S; sleep 10"
0
1024
^\bash: line 1: 4071 Quit (core dumped) sleep 10
$ ls -l
total 0
-rw-rw-r-- 1 t t 0 Dec 3 06:01 core
一般的に、コアダンプが含まれていない場合は、複数のハードリンクがあっても上書きを防ぐことはできません。他人を混同しないように):
$ ls
test
$ ln test testhl
$ ls -la
total 28
drwxrwxr-x 4 t t 4096 Dec 2 11:29 .
drwxrwxr-x 6 t t 4096 Dec 2 07:49 ..
-rw-rw-r-- 2 t t 4 Nov 26 10:21 test
-rw-rw-r-- 2 t t 4 Nov 26 10:21 testhl
$ echo hello > testhl
$ ls -la
total 28
drwxrwxr-x 4 t t 4096 Dec 2 11:29 .
drwxrwxr-x 6 t t 4096 Dec 2 07:49 ..
-rw-rw-r-- 2 t t 6 Dec 2 11:30 test
-rw-rw-r-- 2 t t 6 Dec 2 11:30 testhl
$ cat test
hello
ありがとうございます。
ベストアンサー1
同じ名前の既存のファイルへの書き込みが可能であれば、上書きできるという意味ですか?
はい、それは書き込み可能であることを意味します。
ハードリンク数がコアダンプファイルの生成にどのような影響を与えますか?うまく機能し、次の場合はコアダンプは含まれません。これは混乱の原因でした(他の人を混同しないためにここにあります)。
答えはあなたが言及した引用符に含まれています。
コアダンプに使用されているのと同じ名前の(書き込み可能、一般)ファイルがすでに存在します。しかし、ファイルに複数のハードリンクがあります。。
これは、次の2つの条件が満たされるとコアファイルが生成されないことを意味します。
- 生成するコアファイルと同じ名前(通常は)を持つファイルが
core
すでに存在し、書き込み可能です。
そして
- このファイルには、そのファイルを指す複数のハードリンクがあります。
はい。ハードリンクの数はある程度重要です。マンページは、ファイルに複数のハードリンクがある場合、コアファイルが生成されないことを示しています。