-2

我想使用系统函数来获取 windows 和 linux 上的帐户数。我不知道在哪里看。请指出我正确的方向。

4

4 回答 4

0

system()函数运行一个程序。如果您知道执行所需操作的命令行,则可以使用system()该命令行来运行该命令行。

我不确定哪个命令行程序会给出 Windows 上的帐户数量。您可以通过查看主目录的数量来获得近似值。在 Windows 上,主目录在 `/home' 中,\Users而在 Linux 上,主目录在 `/home' 中。

system()函数不捕获程序的输出。然后,您可能需要运行将程序输出重定向到文件的命令行,然后打开该文件并解析输出。

使用 Python 之类的语言可能会更轻松地解决这个问题。Python 程序非常便携,并且有一些系统内容的包装器。

祝你好运。

于 2013-02-26T01:49:10.733 回答
0

我不知道在 Linux 中,但在 Windows 上:

NetUserEnum()NetQueryDisplayInformation()以及当然来自这里的注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

PS:system(const char *command)函数调用command在命令窗口/终端中执行。

于 2013-02-26T01:49:46.700 回答
0

我用谷歌找到了以下内容:

视窗: 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。

于 2013-02-26T01:50:03.957 回答
0

对于 Linux 系统,您可能希望计算文件中的行数/etc/passwd。此文件包含系统中每个用户的条目。

要在 Linux 下计算文本文件的行数,wc可以使用该命令。

无论如何,如果您在 C 程序中需要此信息,我建议您采用不同的方法:

您可以使用打开一个文本文件并使用直到告诉您没有更多行fopen()来读取每一行。这样做您将获得用户数量。fgets()fgets()

于 2013-02-26T07:41:27.060 回答