問題タブ [argv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
152 参照

php - HTTP ではなく CLI としていくつかの PHP スクリプトを実行しようとしています。どうすれば彼らをうまくプレイさせることができますか?

FeedForAll の PHP スクリプトをいくつか使用して、RSS フィード (RSSmesh) を結合し、HTML (RSS2HTML) として表示しています。

私はこれらのスクリプトをかなり集中的に実行するつもりであり、結果の HTTP 要求と帯域幅がホスティング クォータにカウントされることを望まないため、Web ホストのサーバー上でこれらのスクリプトをアンブレラ PHP "バッチ" スクリプトで実行するように移行中です。 、このスクリプトをcron経由で呼び出します(ちなみに、これはLinuxサーバーです)。

HTTP 経由の (実際の) サンプル リクエストを次に示します。

http://www.mydomain.com/a/rss2htmlcore/rss2html2.php?XMLFILE=http://www.mydomain.com/a/myapp/xmlcache/feed.xml&TEMPLATE=template.html

これにより、目的の HTML 出力が生成されます。これをコマンドラインでどのように機能させたいかの例:

/srv/customers/mycustomer#/mydomain.com/www/a/rss2htmlcore/rss2html2-cli.php /srv/customers/mycustomer#/mydomain.com/www/a/myapp/xmlcache/feed.xml /srv/customers/mycustomer#/mydomain.com/www/a/template.html

これは、「rss2html2-cli.php」に正しいシバン行が追加されたものです。リクエストで実行可能ファイル(「/usr/local/bin/php」)を指定することもできますが、問題なく別のスクリプト(自分で書いたもの)を実行できるため、違いがあるとは思えません。

さて、RSS2HTML と RSSmesh は違います。まず第一に、これらには 2 次ファイルが含まれています (たとえば、どちらにも XML パーサー スクリプトが含まれています)。そして、これが私が頭を悩ませているところだと思います。

現在、次のように「umbrella」バッチ スクリプトから exec() を呼び出しています。

exec("/srv/customers/mycustomer#/mydomain.com/www/a/rss2htmlcore/rss2html2-cli.php /srv/customers/mycustomer#/mydomain.com/www/a/myapp/xmlcache/feed.xml /srv/customers/mycustomer#/mydomain.com/www/a/template.html", $output)

しかし、出力は生成されていません。これを行う最善の方法は何ですか?また、どのような「落とし穴」を心に留めておく必要がありますか? exec() はこれにアプローチする正しい方法ですか? 他の(単純な)スクリプトでは問題なく機能しますが、それは独自の出力を書き込みます。このために、出力を取得し、可能であればアンブレラ スクリプト内からファイルに書き込みたいと考えています。出力バッファリングも試しましたが、うまくいきませんでした。

インクルードに関して何か特別な注意を払う必要がありますか? 現在、それらはスクリプトで指定されてinclude_once("FeedForAll_XMLParser.inc.php");おり、指定されたファイルは実際に同じフォルダーにあります。

詳細情報:

-これは Linux サーバーです。

-シェルに直接アクセスできないため、コマンドラインで直接テストすることはできません。すべてはcrontabを介して行われます。

-FeedForAll スクリプトのサポートには、まだ多くの要望が残されていることは認めますが、できればスクリプトを使い続けたいと思っています。私は Simplepie を調べましたが、FFA スクリプトは、個々のフィードごとのアイテム数の制限 (RSSmesh) や説明の長さの制限 (RSS2HTML) など、Simplepie では明らかな解決策が見られないいくつかのことを行います。

-ヤフー!パイプはアウトです。アプリケーションのデータをキャッシュする時間が長すぎます。


コードを確認したい場合は、txt ファイルとしてのスクリプトを次に示しますRSS2HTML2 と RSSmesh は FeedForAll スクリプトで、FeedForAll_XMLParser... は含まれているパーサーです。$argv などを処理するためにこれらをまだ修正していないことに注意してください。ただし、CLI で正常に動作する「scraper-universal-rss-cli」を使用しています。


誰かがこれについて共有する考えを持っているなら、それは非常に高く評価されます. 前もって感謝します。

0 投票する
2 に答える
368 参照

c - メイン関数のヘッドを削除するにはどうすればよいですか?

一部のコードを別のバイナリから移動して、メイン プログラム内に配置しようとしています。残念ながら、メイン関数の初期化変数を模倣することはできません。

どうすれば手で作成できますargcargv? 誰かが私にいくつかの例の割り当てを与えることができます.

それは次のように見えるからです:

私はそれらを次のように割り当てることができると考えました:

しかし、うまくいきません。これがどのように行われるのか、誰か教えてもらえますか?

0 投票する
2 に答える
3419 参照

c - psはMacOSXのすべてのプロセスのargvをどのように表示しますか?

Mac OS Xで、引数に基づいて特定のプロセスがいつ実行されているかを特定しようとしています。同じ名前で実行されているプロセスが複数ある場合がありますが、探している引数は1つだけです。プロセスは、私のコードを実行するのと同じユーザーによって所有されていません。argvを変更することはありません。

'ps'コマンドは、必要な情報を正確に表示します。しかし、「ps」を生成してその出力を解析する必要がないことを強く望んでいます。

私はもともとsysctlを使用してこの質問の解決策を試しましたが、自分が所有するプロセスに対してのみ機能することがわかりました。詳細については、他の質問を参照してください。

では、psは他のユーザーが所有するプロセスのargv情報をどのように取得するのでしょうか。

0 投票する
6 に答える
4420 参照

c++ - C++argvパス指定子

私のプログラミング言語のインタプリタでは、import関数が呼び出された場合に備えて、パーツを正しく処理する必要があります。次に、そのようなファイルが/libsフォルダー(実行可能ファイルと同じ場所にあります!)にあるかどうかを確認する必要があります。存在しない場合は、現在のスクリプトのディレクトリを確認する必要があります。

  • argvから実行可能ファイルが配置されているディレクトリへの正確なパスを取得するにはどうすればよいですか?
  • パスの末尾からファイルを削除する最良の方法は何ですか。例:

    C:/a/b/c/file.exeになる必要がありますC:/a/b/c/

0 投票する
5 に答える
20928 参照

mpi - MPI_Initがargcおよびargvへのポインターを受け入れるのはなぜですか?

これがMPI_Init関数の使用方法です

MPI_Initがargvの値の代わりにargcとargvへのポインターを使用するのはなぜですか?

0 投票する
2 に答える
11780 参照

visual-c++ - charをTCHAR*に変換しますargv[]

どうすればテキストを入力できますTCHAR* argv[]か?

または:どうすればからに変換できcharますTCHAR* argv[]か?

0 投票する
10 に答える
169081 参照

bash - 関数内の呼び出し元のコマンドライン引数にアクセスするにはどうすればよいですか?

スクリプトのコマンドライン引数にアクセスする関数をbashで作成しようとしていますが、関数の位置引数に置き換えられています。明示的に渡されていない場合、関数がコマンドライン引数にアクセスする方法はありますか?

0 投票する
4 に答える
14584 参照

c - argv[0] はいつ null を持つことができますか?

コマンドラインから main() に引数を渡すことについて私が理解していることは、argc の最小値は 1 であり、argv[0] には常にそのパスを含むプログラム名が含まれることです。

コマンド ラインで引数が指定されている場合、argc は 1 より大きい値を持ち、argv 1から argv[argc-1] はそれらの引数を持ちます。

今、このリンクの段落はそれを言っています

argv[0] は、プログラムの名前を含む文字列か、それが利用できない場合はnull 文字列になります。

では、argv[0] はいつ、どのようにして null 文字列を持つことができるのでしょうか? パスを含むプログラム名は常に利用できるので、いつnullになることができますか?

ライターは「それが利用できない場合」と言っていますが、いつ、どのようにしてプログラム名が利用できない可能性がありますか?

0 投票する
4 に答える
11485 参照

python - unittestモジュールがスクリプト内にある場合のsys.argv[1]の問題

sys.argvを使用してさまざまなことを実行し、パラメーターにアクセスするスクリプトがありますが、スクリプトがコードの単体テスト部分に到達すると、このためのモジュールがないと表示されます。私が持っているスクリプトは次のとおりです。

./script.py Helloコマンドラインに入力するとします。私が得るエラーは次のとおりです。

unittestモジュールを削除すると、機能します。また、テストランナーログを削除して、次の場所に残しておくと、次のようになります。

これはまだ機能しません。

誰でも助けることができます。

ありがとう

私はこのハックを試しましたが、それでもを読み込もうとしますsys.argv

私はこれを試してみましたargvが、それでも余分なパラメータを読み取るのは面倒です。

0 投票する
5 に答える
8840 参照

c# - argvを使用してC#でサブプロセスを起動するにはどうすればよいですか?(またはagrvを有効なarg文字列に変換します)

私はC#コマンドラインアプリケーションを持っており、それをWindowsで実行し、UNIXではmonoで実行する必要があります。ある時点で、コマンドラインから渡された任意のパラメーターのセットを指定してサブプロセスを起動したいと思います。例えば:

残念ながら、System.Diagnostics.ProcessStartInfoはargsの文字列のみを取ります。これは、次のようなコマンドの問題です。

この場合、argvは次のようになります。

「abc」を囲む引用符はシェルによって削除されるため、ProcessStartInfoのarg文字列を作成するために引数を単純に連結すると、次のようになります。

それは私が望むものではありません。

argvをC#でのサブプロセス起動に渡すか、任意のargvをWindowsおよびLinuxシェルに有効な文字列に変換する簡単な方法はありますか?

どんな助けでも大歓迎です。