1

Web サイトをクロールするプログラムを実行する必要があり、アルゴリズムとコードの一部が既にあります。wget問題は、ソース コードに挿入する方法がわからないことです。私たちの学生アシスタントは、ある種のキーワードまたは関数をwget( system、または何かだと思いますが、よくわかりません) の前に使用する必要があることをほのめかしました。

4

4 に答える 4

3

使用しないsystem場合:

1.) システム経由で呼び出したプログラムが利用できない別の環境にプログラムを配布したい場合

2.) 呼び出すプログラムが実際に希望するプログラムであることを確認する必要があるセキュリティ関連の環境で

3.) やりたいことが 10 ~ 20 行の C コードで簡単に実現できる場合

4.) パフォーマンスが重要なアプリケーションで

したがって、system事実上決して使用しないでください。

代わりに、同じことを達成するには、Davidが提案したようにlibcurlを使用するか(彼の答えはなくなったようです...)、ソケットプログラミングを行うことができます(結局Cです)。

現実のシナリオでは、デフォルトで別の言語でクローラーを作成することになるでしょう。Web リクエストと複雑な文字列処理は、必ずしも C の長所とは限らず、使用するのがあまり便利ではないことは間違いありません :)

于 2013-03-11T12:07:28.027 に答える
2

system()コマンドを使用できます。

あなたの場合(おそらく):

system("/bin/wget");

wgetただし、本当にパラメーターを使用して呼び出したい場合は、 execl()を使用する必要があります。

execl("/bin/wget", "http://anyadress.com/file");
于 2013-03-11T11:56:30.217 に答える
1

Cプログラムからシェルコマンドを実行したいときはいつでも、system("shell command").In your case

system("wget");

注 - wget は実行可能ファイルであり、その場所はパス変数に追加されるため、パスを明示的に指定する必要はありません。

- 例 -

#include <stdio.h>

#define BUFFLEN 2500

int main()
{

char web_address[BUFFLEN] = "www.google.com"; 
system("wget 'web_address' "); 
return 0;

}
于 2013-03-11T12:22:01.833 に答える
0

このsystemコマンドは、シェル コマンドを実行するために使用されます。男系

于 2013-03-11T11:57:51.070 に答える