我想使用系统函数来获取Windows和Linux上的帐户数量。 我不知道在哪里看。请指出我正确的方向。
答案 0 :(得分:0)
system()
函数运行程序。如果您知道执行所需操作的命令行,则可以使用system()
运行该命令行。
我不确定哪个命令行程序会在Windows上提供帐号数量。您可以通过查看主目录的数量来获得近似值。在Windows上,主目录位于\Users
,Linux主目录位于`/ home'。
system()
函数不捕获程序的输出。然后,您可能需要运行将程序输出重定向到文件的命令行,然后打开此文件并解析输出。
使用像Python这样的语言,你可能会更容易解决这个问题。 Python程序非常便携,并且有一些系统包装器。
祝你好运。答案 1 :(得分:0)
我不知道在Linux中,但在Windows上:
NetUserEnum()或NetQueryDisplayInformation()以及此处的注册管理机构:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
PS:system(const char *command)
函数调用在命令窗口/终端执行command
。
答案 2 :(得分:0)
我使用Google查找以下内容:
视窗: 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 get user account information”,“linux get user account information”)
Linux页面提供了一个命令行,因此您可以将其放入system()
调用中。但在Windows中,您不使用system()
,而是使用Win32 API。
答案 3 :(得分:0)
对于Linux系统,您可能希望计算文件/etc/passwd
中的行数。该文件包含每个用户进入系统的条目。
要在Linux下计算文本文件的行数,可以使用wc
命令。
无论如何,如果您在C程序中需要此信息,我建议您采取不同的方法:
您可以使用fopen()
打开文本文件,并使用fgets()
读取每一行,直到fgets()
告诉您没有其他行。这样做可以获得用户数量。