2013-02-26 54 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()告訴你,有沒有更多的行,每行。這樣做你會得到的用戶數量。

相關問題