2012-01-22 11 views
0

のパスワードファイルのエントリを取得する私は自分のソースコードでこれを持っている:は、現在のユーザー

struct passwd* user_info = getpwnam("root"); 

は「ルート」を変更するには、とにかくありますし、私のプログラムは、現在のユーザーを見つけるのだろうか?たとえば、ユーザーroot2でログインしている場合は、root2ではなくroot2の情報が必要です。

答えて

1

ユーザーのUIDはgetuid()(フォームunistd.h)であり、getpwuid()に渡すことができます。

+0

、Linuxでのユーザ名を取得します! – BlackM

+1

「うまくいきません!」有用ではありません。何がうまくいきませんか?どのように正確にコードを書いたのですか? – Mat

+0

struct passwd * user_info = getpwnam(getuid()); – BlackM

-2

次のコード、それは働いていない

#include<iostream> 
using namespace std; 
int main() 
{ 
    std::string name; 
    name = system("whoami"); 
    cout << "Name is : " << name; 
    cout << endl; 
     return 0; 
} 
+3

'system()'はコマンドの終了ステータスを返します。標準出力ではありません。 – Staven

+1

そして、何らかの形でそれが働いていても、あなたは 'system'のヘッダーを含めません。 – Mat

+0

また、これは 'whoami'プログラムをパスのどこかに持つユーザに依存します。 –

関連する問題