2012-01-22 128 views
0

我有這個密碼文件條目:獲得在我的源代碼在當前用戶

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

反正是有改變的「根」和我的程序會查找當前用戶?例如,如果我使用用戶root2登錄,我想要root2的信息,而不是root。

回答

1

您可以用getuid()(表格unistd.h)找到用戶的uid,並將其傳遞給getpwuid()

+0

它不工作! – BlackM

+1

「它不工作!」沒用。什麼不工作?你是如何編寫代碼的? – Mat

+0

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

-2

下面的代碼將獲得的用戶名在Linux中,

#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」程序。 –

相關問題