Cプログラムでコマンドを実行したいです。ただし、一部のフォルダを作成するにはrootアクセス権が必要です。次のコマンドを実行します。
system("echo <rootpass> | sudo cd <folder> && make install");
<rootpass> is given by the user (and thus the command should only execute if the user has root priviliges).
ただし、このコマンドを実行すると、システムはコード256(EPERM / *操作が許可されていない* /)を返します。
この問題をどのように解決できますか?
答え1
問題を解決するにはexpect
、sudo
およびを含むスクリプトを作成する必要があり、関数はスクリプトを呼び出します。たとえば、次のようになります。make install
system()
system("myscrip.sh");
期待値を読むには:Bashでrootとしてログインして操作を実行する方法