Windows には、アトミックに変数の値を変更する API として InterlockedIncrement というものがあるが、Linux (GCC) ではどうなのか調べたところ、__sync_add_and_fetch という組み込み関数がそれに相当するようだ。
Ubuntu にログインする際、以下のようなメッセージが表示されるが、どうやって表示されるかが気になったので調べてみた。
Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-57-generic x86_64) * Documentation: https://help.ubuntu.com/ 12 packages can be updated. 10 updates are security updates.
このメッセージ自体は /etc/motd に書き込まれている。このファイルは /etc/update-motd.d/ 以下のスクリプトが更新しているらしい。
アップデート情報の方が気になるので更に調べてみると、アップデートがあるかどうかをチェックしているのは、90-updates-available というスクリプトで、この中からさらに /usr/lib/update-notifier/update-motd-updates-available を呼んでいる。この中に以下のような行があった。
/usr/lib/update-notifier/apt-check --human-readable
このコマンドを実行してみたところ、
12 個のパッケージがアップデート可能です。 10 個のアップデートはセキュリティアップデートです。
と表示された。メッセージが日本語になったのは、LANG 環境変数の影響である。