execl() は絶対パスがないとコマンドを実行しません。

execl() は絶対パスがないとコマンドを実行しません。

に保存されているCプログラムがあります/usr/sbin/。このプログラムは2秒ごとに「Hello World」を印刷します。任意のフォルダからプログラムを呼び出す/実行できます。

これを使用してCプログラムを作成すると、system("a.out");すべてのフォルダで実行されますが、使用するときはexecl()絶対パスを指定する必要があります。execl("/usr/sbin/a.out", "a.out");それ以外の場合は実行されません。なぜ?

ベストアンサー1

system()shCライブラリ関数は、指定されたコマンドを実行するために使用されます。これにより、$PATHプログラムは絶対パスを使用して指定されていない限り、ディレクトリから実行可能ファイルを検索します。 Cライブラリ関数はexecl()これらのクエリを実行しません。

execこの機能シリーズを使用してプログラムを実行し、execlp()どの機能を使用してPATH調べますか?

システムを確認してくださいman execlp

おすすめ記事