在c中使用system()函数

时间:2013-02-26 01:44:25

标签: c linux windows system

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

4 个答案:

答案 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()告诉您没有其他行。这样做可以获得用户数量。