問題タブ [execvp]

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 投票する
3 に答える
2747 参照

c++ - C++ const char* から const char* const へ

私は現在、非常に基本的なシェルとして機能するクラスの割り当てを作成しています。私はほぼ完成していexecvpますが、パラメーターの文字配列で問題が発生しています。これが私のコードの軽いスニペットです。

そして、これはによって利用されています...

私のエラーは

問題は、文字配列が定数データでいっぱいではないことであることを理解しているので、基本的に からconst char*に移動する必要がありconst char* constます。について何かを読みましたがconst_cast、それが私がしなければならないことかどうかわかりませんでした。

よろしければ、私の文字配列の配列がその関数で適切に受け入れられるように手伝っていただけませんか? 私のコードをもっと投稿する必要がある場合は、お知らせください。

ありがとう

0 投票する
1 に答える
160 参照

c - exevp は、c での待機呼び出しまですべてのコードをスキップします

forkと を使用してファイルを実行しようとしていますexecvpが、いくつかのエラーが発生しています。私のexevpからエラーが発生せず、実行されないため、ここでオンラインで発生している問題の解決策は見つかりませんでした。これが私のコードです:

このコードを実行しようとすると、「IN CHILD BEFORE EXCEPTION」と「IN PARENT」のみが出力され、間にある printf ステートメントは出力されません。「hello world」を標準出力に出力する単純な実行可能ファイルを実行しようとしているファイル。

助けてくれてありがとう

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

c - Cプログラミング2パイプ

プログラムに 2 つのパイプを設定したいと考えています。1 本のパイプは正常に動作していますが、2 本目のパイプをどこに配置すればよいかわかりません。

私のセットアップの擬似コードを以下に示します。

これが中括弧付きです。申し訳ありません

2 番目のパイプの位置が間違っているか、コードが完全に間違っています。

助言がありますか?

0 投票する
1 に答える
768 参照

c - execvp はコマンドを実行しません

いくつかの UNIX コマンドを実行するコードを実行しようとしています。これらのコマンドは配列 lineArray に格納されています。たとえば、次のようになります。lineArray = {"ls -l", "ls", "pwd", NULL};

問題は、関数が execvp MAN に従ってコマンドとその引数を正しく解析することをデバッグで見たにもかかわらず、このコードが配列の最初のコマンドのみを出力することです。

あらゆる種類の助けをいただければ幸いです。

}

0 投票する
1 に答える
462 参照

c - chars/char ポインターの既存の配列に chars を追加しますか?

現在、文字列の行を読み取って解析しています。そのために次の変数を使用しています:char **parsedchar *parsed_arguments[64]. これを解析するために使用するコードは次のとおりです。

その部分は問題なくダンディですが、parsed_arguments に追加しようとすると問題が発生します。私が達成しようとしているのは、ファイルからテキストを読み取り、 に配置しchar buffer[]、トークン化し、 に追加して、 をparsed_arguments使用してこれらの引数をプログラムに渡すことができるようにすることexecvpです。これまでのところ、テキストを読み取ってバッファに配置することができ、トークン化も試みましたが、最後の部分で混乱します。私が取り組んでいることを詳しく説明するコードは次のとおりです。

0 投票する
0 に答える
92 参照

c - 分岐した execvp が返されず、親は無期限に待機します

コメント付きのコード: http://pastebin.com/nrXayHx5

多くのファイルとディレクトリでコマンド「du」を繰り返し実行しています。多くの入力に対して機能しますが、機能しない特定のディレクトリが1つあります。どのディレクトリであるかを確認し、文字列は整形式です。そのディレクトリで du を実行した場合の出力が特に長いことに気付きました。それが execvp が戻らない理由でしょうか? 多分パイプがいっぱい?

助けていただければ幸いです。ありがとうございました。

0 投票する
1 に答える
997 参照

c - execvp および wait() の後に制御を戻すことができない

解析するコマンドを実行する必要がある小さなシェルをコーディングしています。

f は次のような char** です: [ls][-la] p は同じで、次のように使用されます: [wc] そこで、ls -la を wc でパイプしようとしました。私の問題は、パイプでうまく機能する「ls -la | wc && date」を実行すると、ミニシェルが閉じられ、「date」が実行されないことです。待機機能を使用して終了を待ちましたが、何もしません。スタックしているように見え、2 番目の execvp の直後に終了します。

私の配列は NULL で終わります。ls -la | wc はうまく実行されますが、この後 bash に戻ります。execlp と execl を試してみましたが、最初の引数 (ls + -la) のオプションが必要であることを考えると、これは問題ではないと思います。私を手伝ってくれますか ?前もって感謝します :)