• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のsystem関数でコマンドのエイリアス)

C言語のsystem関数でコマンドのエイリアスを設定する方法

このQ&Aのポイント
  • C言語のsystem関数を使用して、コマンドのエイリアスを設定する方法について教えてください。
  • C言語のsystem関数でエイリアスを設定したコマンドを実行する方法について知りたいです。
  • C言語のsystem関数を使って、bashのエイリアスを適用したコマンドを実行したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

system()により呼び出されたコマンドは実行中のプログラムとは別のシェルで動作するので、シェルで登録したエイリアスや環境変数は使えない前提で使うものです。

参考URL:
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/system.3.html

その他の回答 (2)

  • ky072
  • ベストアンサー率60% (85/140)
回答No.3

こんな感じでいかがでしょう。 system( "/bin/bash -i -c id" ); 他のシェルを使用しているユーザーにも対応する必要があれば、 getpw(3) で pw_shell を見てやる必要があります。 ちなみに -i のようなオプションが全シェルで共通とは限りません。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

それはたぶんずれてる>#1. #1 で挙がっている system(3) にあるように, 「/bin/sh を実行するから」でしょう. Linux の場合 sh は bash の (シンボリックまたはハード) リンクになっていると思うので, bash(1) を見れば原因がわかるはずです (最悪 bash のドキュメントを読めばいい).

関連するQ&A