2013-02-26 67 views
-2

我想使用系统函数来获取windows和linux上的帐号数量。 我不知道在哪里看。请指点我正确的方向。在c中使用system()函数

+0

欢迎来到Stack Overflow。太久之前请阅读[常见问题]。你有什么尝试?什么构成一个帐户?你在哪里查找有关Linux上帐户的信息?你在哪里查找有关Windows上帐户的信息?你会从shell运行什么命令,因为这是你通过'system()'运行的命令?如果你不知道在shell中执行它的方式(CMD窗口提示符),你就会隐藏起来。首先研究;当你可以在你的C代码之外得到答案时,在你的C代码中用'system()'得到它就是孩子的玩耍。 – 2013-02-26 01:50:29

回答

0

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

我不知道什么命令行程序会给Windows上的帐户数量。您可以通过查看主目录的数量来获得近似值。在Windows上,主目录位于\Users,Linux主目录位于`/ home'目录。

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

你可能会更容易用Python这样的语言来解决这个问题。 Python程序非常便携,并且有一些系统内容的包装。

祝你好运。

+0

“Python程序非常便携”......你知道有多少世嘉Megadrives会运行Python实现吗? – Sebivor 2013-02-26 01:55:50

+0

@modifiablelvalue,您知道运行Windows或Linux有多少个世嘉Megadrives? – steveha 2013-02-26 01:56:58

+1

这是对Windows或Linux的可移植性的一个无关紧要的指示,而不是Python程序的可移植性。 – Sebivor 2013-02-26 03:00:35

0

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

NetUserEnum()NetQueryDisplayInformation()和ofcourse从注册表中的位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

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

0

我用谷歌找到以下内容:

的Windows: 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页面提供了一个命令行,所以你可以把它放在你的拨打。但在Windows中,您不使用system(),您使用Win32 API。

0

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

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

无论如何,如果你需要在C程序这个信息,我建议你采取不同的方法:

你可以使用fopen()打开一个文本文件和读取使用fgets()直到fgets()告诉你,有没有更多的行,每行。这样做你会得到的用户数量。