我想使用系统函数来获取 windows 和 linux 上的帐户数。我不知道在哪里看。请指出我正确的方向。
4 回答
该system()
函数运行一个程序。如果您知道执行所需操作的命令行,则可以使用system()
该命令行来运行该命令行。
我不确定哪个命令行程序会给出 Windows 上的帐户数量。您可以通过查看主目录的数量来获得近似值。在 Windows 上,主目录在 `/home' 中,\Users
而在 Linux 上,主目录在 `/home' 中。
该system()
函数不捕获程序的输出。然后,您可能需要运行将程序输出重定向到文件的命令行,然后打开该文件并解析输出。
使用 Python 之类的语言可能会更轻松地解决这个问题。Python 程序非常便携,并且有一些系统内容的包装器。
祝你好运。
我不知道在 Linux 中,但在 Windows 上:
NetUserEnum()或NetQueryDisplayInformation()以及当然来自这里的注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
PS:system(const char *command)
函数调用command
在命令窗口/终端中执行。
我用谷歌找到了以下内容:
视窗: http ://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/8c72b948-d32c-4785-930e-0d6fdf032ecc
Linux: http ://www.linuxforums.org/forum/miscellaneous/29508-list-all-user-accounts-system.html
(搜索字符串:“win32获取用户账号信息”、“linux获取用户账号信息”)
Linux 页面提供了一个命令行,因此您可以将其放入您的system()
调用中。但是,在 Windows 中,您不使用system()
,而是使用 Win32 API。
对于 Linux 系统,您可能希望计算文件中的行数/etc/passwd
。此文件包含系统中每个用户的条目。
要在 Linux 下计算文本文件的行数,wc
可以使用该命令。
无论如何,如果您在 C 程序中需要此信息,我建议您采用不同的方法:
您可以使用打开一个文本文件并使用直到告诉您没有更多行fopen()
来读取每一行。这样做您将获得用户数量。fgets()
fgets()