私はjournalctlコードを見て、次のコードブロックを見つけました。ボイドキャストの目的は何ですか?
これは、条件がテストされているときに0以外の結果がある場合、一連の条件テストから抜け出すための簡略な方法のようです。かなり賢い。
しかし、キャストvoid
の目的は不明です。いくつかのコンパイラ出力を抑制するのですか? g ++はいずれも-Wall
と-pedantic -pedantic-errors
でさえ気にしません。
m1 = strjoina("_SYSTEMD_UNIT=", unit);
m2 = strjoina("COREDUMP_UNIT=", unit);
m3 = strjoina("UNIT=", unit);
m4 = strjoina("OBJECT_SYSTEMD_UNIT=", unit);
(void)(
/* Look for messages from the service itself */
(r = sd_journal_add_match(j, m1, 0)) ||
/* Look for coredumps of the service */
(r = sd_journal_add_disjunction(j)) ||
(r = sd_journal_add_match(j, "MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1", 0)) ||
(r = sd_journal_add_match(j, "_UID=0", 0)) ||
(r = sd_journal_add_match(j, m2, 0)) ||
/* Look for messages from PID 1 about this service */
(r = sd_journal_add_disjunction(j)) ||
(r = sd_journal_add_match(j, "_PID=1", 0)) ||
(r = sd_journal_add_match(j, m3, 0)) ||
/* Look for messages from authorized daemons about this service */
(r = sd_journal_add_disjunction(j)) ||
(r = sd_journal_add_match(j, "_UID=0", 0)) ||
(r = sd_journal_add_match(j, m4, 0))
);
f (r == 0 && endswith(unit, ".slice")) {
...
可能性のある迷信です。または警告システムが壊れているコンパイラ。 – SergeyA
クラップ・コードをさらにクレイジーにするには?この "MESSAGE_ID = fc2e22bc6ee647b6b90729ab34a250b1"のような文字列を埋め込むものは、ひどいものです。 –
@NeilButterworth - 多少は同意します。誰がfc2e22bc6ee647b6b90729ab34a250b1 = coredumpを考えたでしょうか? systemdは常にかなり議論の余地があった。 – Matt