-2

システム関数を使用して、Windows と Linux のアカウント数を取得したいと考えています。どこを見たらいいのかわからない。私を正しい方向に向けてください。

4

4 に答える 4

0

Linuxシステムの場合、ファイルの行数を数えることができます/etc/passwd。このファイルには、システムへの各ユーザーのエントリが含まれています。

Linuxでテキストファイルの行数を数えるには、このwcコマンドを使用できます。

とにかく、Cプログラムでこの情報が必要な場合は、別のアプローチを取ることをお勧めします。

を使用してテキストファイルを開き、行がなくなるまでfopen()を使用して各行を読み取ることができます。そうすることで、ユーザー数を取得できます。fgets()fgets()

于 2013-02-26T07:41:27.060 に答える
0

system()関数はプログラムを実行します。必要なことを実行するコマンド ラインがわかっている場合は、 を使用system()してそのコマンド ラインを実行できます。

どのコマンド ライン プログラムが Windows のアカウント数を表示するのかわかりません。ホームディレクトリの数を調べることで、概算を得ることができます。Windows ではホーム ディレクトリは に\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

Google を使用して、次の情報を見つけました。

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 get user account information"、"linux get user account information")

Linux のページにはコマンド ラインが用意されているので、それを呼び出しに入れることができますsystem()。ただし、Windows ではsystem()を使用せず、Win32 API を使用します。

于 2013-02-26T01:50:03.957 に答える