1

VxWorks 5.5.1 では、execute コマンドを使用してスクリプトを実行できました。VxWorks 6.7 では、execute コマンドはサポートされなくなりました。代わりがいるなら今誰かいますか?コマンドラインではなくコード内から具体的に話しています。

4

3 に答える 3

1

多くの調査により、これを達成する方法はいくつかあるようですが、以前の実行コマンドとまったく同じものはありません。以下のコメントで述べたように、execute コマンドは公式の API 呼び出しではないことがわかりました。

1) shellCmdExec を使用できますが、ほとんどはシェル タスク内から呼び出されます。2) 採用するソリューション - スタートアップ スクリプト内から呼び出す方法

3)そしてハック方法:

fd = open("/y/startup.go", 0, 0) /* 実行したいスクリプトを開く/ v=shellFromNameGet("tShell0") /シェル ID を取得する */

/* shellinOutGet を使用して、シェルの標準入力を保存します/ shellInOutSet (v, fd, -1, -1) /シェルの標準入力をファイルに設定します */

/* ここで、標準インを復元する必要があります (事前に shellInOutGet を実行します)。シェルがスクリプトで完了した後に実行してください。ti が完了したら、スクリプトは変数をインクリメントする必要があると思います。*/

閉じる(fd)

于 2010-06-14T15:17:45.697 に答える
0

VxWorks Kernel プログラマー ガイド 6.7 に解決策があります。

    shellGenericInit ("INTERPRETER=Cmd", 0, NULL, &shellTaskName, FALSE, FALSE,fdScript, STD_OUT, STD_ERR); do
    taskDelay (sysClkRateGet ());
    while (taskNameToId (shellTaskName) != ERROR); close (fdScript);

ドキュメントのセクション 15.2.15 を確認してください。

于 2014-08-28T08:03:11.310 に答える