2012-01-04 7 views
4

私はUnixの現在のログインユーザーとシステム名を印刷する方法を学ぶのを楽しみにしています。Unixで現在のユーザとシステム名を印刷するには?

#include <unistd.h> 
#include <fcntl.h> 

using namespace std; 

int main(int argc, char **argv) 
{  
    //Print the current logged-in user/username. 
    //Print the name of the system/computer name. 

    return 0; 
} 

デモンストレーションとしてコード行を提供できる場合は、私は感謝します。ありがとう

+1

これは自宅の仕事の質問ですか?このようなことを真剣に尋ねるのではなく、むしろ研究をするべきでしょう。たとえば、http://en.wikipedia.org/wiki/Exec_(operating_system)を参照してください。 –

+0

大丈夫..ありがとう。 [その間、宿題ではない]。 – CompilingCyborg

答えて

3

getuid()は、ユーザー名ではなくIDを取得します。

struct passwd *passwd; 
passwd = getpwuid (getuid()); 

printf("The Login Name is %s ", passwd->pw_name); 

See it

そして、あなたはgethostname()機能を使用することができ、ホスト名を取得するための:ユーザ名を取得するには、さらにgetpwuid()を使用する必要があります。

+0

きれいな答えとあなたの時間ありがとう。 – CompilingCyborg

5

ユーザー - >getuid()geteuid()も参照してください)。

マシン名 - >gethostname()

純粋なCです。私は、C++に他のライブラリ呼び出しがあるかどうかわかりません。

+2

私はそれを「純粋なC」と呼んでいません。関数はC標準ではなくPOSIXによって定義されており、一部のシステム(Windowsなど)では使用できない場合があります。 (はい、私は質問が "unix"とタグ付けされていることを知っています。) –

関連する問題