我期待着学习如何在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;
}如果您能提供一两行代码作为演示,我将不胜感激。谢谢
发布于 2012-01-04 16:37:26
getuid()获取的是id,而不是用户名。要获得用户名,您还必须使用getpwuid()
struct passwd *passwd;
passwd = getpwuid ( getuid());
printf("The Login Name is %s ", passwd->pw_name);See it
为了获得主机名,您可以使用gethostname()函数。
发布于 2012-01-04 16:30:40
User --> getuid() (另请参阅geteuid())。
机器名称--> gethostname()。
这是纯C语言,我不知道C++是否有其他的库调用。
发布于 2012-01-04 16:32:03
您需要调用uname、gethostname、getuid (可能还有getgid) system calls,并使用getpwent函数转换数字uid。
https://stackoverflow.com/questions/8723956
复制相似问题