私が見た この例
$ whoami
MatsP
$ g++ -Wall -std=c++0x getenv.cpp
$ ./a.out
MatsP
$ export USER=DonaldDuck
$ ./a.out
DonaldDuck
しかし、私にとってはそれは機能しません。私はDebianマシンにいます。 export -p
を使用しましたが、実際に変数が変更されました。 bachrc
を更新しましたが、まだ何もありません。上記を達成する方法は? whoami
はデフォルト値を表示します。
Linuxのwhoami
は、USER
変数を読み取りません。
「通常のシステム」(たとえばLDAPを使用しないことを意味します)では、geteuid(2)
システムコールを実行して現在の有効なユーザーIDを取得し、/etc/passwd
を読み取ってユーザー名を検索します。