に保存されているCプログラムがあります/usr/sbin/
。このプログラムは2秒ごとに「Hello World」を印刷します。任意のフォルダからプログラムを呼び出す/実行できます。
これを使用してCプログラムを作成すると、system("a.out");
すべてのフォルダで実行されますが、使用するときはexecl()
絶対パスを指定する必要があります。execl("/usr/sbin/a.out", "a.out");
それ以外の場合は実行されません。なぜ?
ベストアンサー1
system()
sh
Cライブラリ関数は、指定されたコマンドを実行するために使用されます。これにより、$PATH
プログラムは絶対パスを使用して指定されていない限り、ディレクトリから実行可能ファイルを検索します。 Cライブラリ関数はexecl()
これらのクエリを実行しません。
exec
この機能シリーズを使用してプログラムを実行し、execlp()
どの機能を使用してPATH
調べますか?
システムを確認してくださいman execlp
。