C/C++: root で複数のコマンドを実行する

C/C++: root で複数のコマンドを実行する

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

問題を解決するにはexpectsudoおよびを含むスクリプトを作成する必要があり、関数はスクリプトを呼び出します。たとえば、次のようになります。make installsystem()

system("myscrip.sh");

期待値を読むには:Bashでrootとしてログインして操作を実行する方法

関連情報