在Java中,我可以有这样的东西:

Process p = Runtime.getRuntime().exec("su");
DataOutputStream pOut = new DataOutputStream(p.getOutputStream());
pOut.writeBytes("find / -perm -2000 -o -perm -4000\n");
pOut.writeBytes("ps\n");
pOut.writeBytes("ls\n");
pOut.writeBytes("exit\n");
pOut.flush();
p.waitFor();

我知道要在JNI方法中执行find命令,可以使用system或popen函数但我不知道如何用su特权来执行它?
PS:因为系统函数派生了一个新的子进程。我希望有一个子进程生成来执行多个命令,比如在Java中。

最佳答案

Femi答案很接近,我已经测试过了,以下对我有效:

system("su -c \"find / -perm -2000 -o -perm -4000; ps; ls\"");

10-07 16:42