1

私は自分の研究に v8-shell を使用しています。「stdin」を読み取れるようにするには、JS スクリプトから必要です。

たとえば、JS スクリプトを次のように実行します。./v8-shell myscript.js

私の「myscript.js」では、stdin に渡されたデータを読み取る必要があります。

出来ますか?これどうやってするの?

ありがとう。

4

3 に答える 3

3

v8はI/Oライブラリを提供しません。これは基本的にコアJavaScript言語のランタイムであり、Math、String、Arrayなどの一部のオブジェクトが一部として提供されています。

I / Oのような重要なモジュールがないのは、ブラウザー環境では使用できず、v8がそのような環境のコンポーネントとして実装されているためです。v8をスタンドアロンのプログラミング環境として使用できるようにするには、少なくとも基本的なI/O用のネイティブライブラリが必要です。ここでは、2つの選択肢があります。v8へのI / O拡張を実装するか、既存の拡張を使用するかです。v8はC++で実装され、C ++の拡張機能用のAPIを提供するため、前者はC++の知識を必要とします。後者のオプションの方が簡単です。このようなライブラリの多くの実装から選択できます。

人気のあるライブラリの1つはnode.jsです。これは、I/Oとネットワーキングのための徹底的なイベント駆動型のほとんど非同期のAPIを提供します。node.jsを使用できる場合は、プロセスモジュールを介してstdin、stdout、およびstderrへのアクセスが提供されます。クイックリンク:process.stdin

もう1つのプロジェクトはCommonJsです。これは、ブラウザー環境の外部でJSを使用するためのAPI(I / Oの有無にかかわらず)を提供するためのリスト仕様とその多くの実装です。多くの実装は、http: //commonjs.org/impl/にリストされているv8の上にあります。

Another such project is Gnome's Seed, which provides an API, including GObjectInstrospection. It also uses a custom JS runtime, so if you need to stick to v8, this is not an option for you. What also noteworthy about Seed is it's implemented and extensible in C language.

于 2013-02-13T17:39:17.517 に答える