execv

    -1

    1答えて

    私はexecvを使って元の関数に渡されるコマンドを呼び出すプログラムをC言語で書いています。 私は "./program echo" hello ""と入力し、プログラムのforkの子はbashコマンド "echo hello"を使います。 execvのmanページは非常に曖昧です。「最初の引数は、慣例により、実行されているファイルに関連付けられているファイル名を指す必要があります。私はこの権利を

    1

    1答えて

    を通じて引数を渡す: char * pl[] = {"test.sh", NULL}; execv("./test.sh", pl); これは交流プログラムから私のスクリプトを実行しますが、これはしません: execv("./test.sh", ["test.sh", NULL]); これが実現エラーメッセージ: error: expected expression before '['

    -2

    1答えて

    "tmp"で文字列を分割し、ポインタ "arr"の配列に入れようとしています。私は "arr"に "execv"を使用しようとしているのでこれをやっているが、 "arr"は最後にNULLがないのでできない。代わりに "(null)"があり、その内容を印刷するとセグメント化エラーが発生します。 "arr"をexecvで使用できるように正しく設定するには?おかげ #include<stdio.h>

    0

    1答えて

    execv()関数群はを呼び出します。mmap()は、elfファイルからテキスト、データ、bssセグメントを内部的にロードする機能を備えていますか?いずれか1つは、exec()関数の作業に関連するブロックまたはステップを共有してください。また、内部でexecがどのように動作するかを知るためのリンクや書籍を提案してください。

    0

    2答えて

    私が検索したのは、Cygwinが必要だということでした。私はそれをインストールしましたが、どこでもunistd.hを見つけることはできませんC:\cygwin64\usr\include。もちろん、VS2015のプロジェクトの「インクルードディレクトリ」にそのパスを追加しました。私が何をしたいか はCで、私は簡単な解決策を知っている(等...または多分execl()、execlp()、execvp

    1

    1答えて

    私はスレッド、プロセス、execvなどにはとても新しいです。私は調査して、execvを実行すると呼び出しプロセスのスペースがかかることを発見しました。私はmainでスレッドを作成し、execvをスレッドの直後に呼び出すと(スレッドが終了する前ではなく、スレッドが作成された直後に)何が起こるのだろうかと思います。私はexecvがmainを置き換えることは知っていますが、これはスレッドを置き換えるか、

    -1

    2答えて

    私は奇妙な問題が発生しています。宿題のために私は自分の基本的なbashスクリプトを作成していますが、execv()を実行してcpコマンドを実行すると動作しません。これはlsとグループでは動作しますが、cpでは動作しません。私はエラーを分離するために自分のcpプログラムを使いこなしました。それは確かにexecvコマンドです。 void ls(char** array) { pid_t

    -2

    0答えて

    私が見ている限り明確に理解されていないので、問題を書き直しています。私はC言語で独自のシェルを実装しています。このシェルは元のコマンドをサポートする必要があります。 がはすでにあなたが簡単にことをやらせるexecvp()またはsystem()機能を使用せずにC内のすべての既存のUNIXのbashコマンドを実行する 問題があります。 これを行うには、すべての種類のUNIXコマンドからなる必要なすべて

    1

    1答えて

    私はexecvを使ってコマンドを実行しようとしています。このプログラムを実行した後、私は "Going to call execv!"というステートメントを見ることができます。標準出力に印刷されます。 私はまた、プログラム「漏れ」からのプリントを見ることができます。実際には、ifやelseブロック、つまり「execv failed!error:」や「valgrindが正常に実行された」のいずれにも

    0

    1答えて

    Cでシェルコマンドを開発していますが、コマンドexecvを使用するときに問題があります。私は主にdo(1)を持っているので、無限ループにする必要がありますが、コマンドとして/ bin/lsを導入すると、プロンプトにファイルとフォルダが表示されて停止します。 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include