Perl はバイナリファイルを「実行」できません。

Perl はバイナリファイルを「実行」できません。

新しいDebinをインストールすると、Perlソルバーはデフォルトでインストールされます(つまり、他のPerlパッケージはまだありません)。ただし、次のことを試してください。

$ls
a.cpp b.cpp
$ perl -e 'system "g++ -o a.out a.cpp b.cpp"; exec "a.out"'

出力がありません(エラーなし、なし)。 Perlはコマンドを正しく使用しますsystem(つまりa.out実行可能ファイルを生成します)、分岐できません。なぜ?

ベストアンサー1

答えは嘘です出荷書類ビーチexecしかし、自分が探しているものがわからないと確認するのは難しいです。

LISTに複数のパラメータがある場合、execvが呼び出されます。(3)LISTのパラメータを使用してください。 LISTに要素が1つしかない場合は、引数にシェルメタ文字が含まれていることを確認します。そうであれば、引数全体が解析(...)のためにシステムのコマンドシェルに渡されます。引数にシェルメタ文字がない場合は、単語に分割され、execvに直接渡されます。(…)。

すべての場合において、コマンド名は(Perlまたはシェルを介して)パスルックアップのターゲットです。その名前が含まれていない場合は、通常、現在のディレクトリを含まない/コマンド検索パス()で検索されます。$PATH

に変更

exec "./a.out"

おすすめ記事