system(“/bin/sh")什么用
时间: 2023-11-28 19:06:19 浏览: 259
在Linux中,`system()`函数可以用于执行外部命令或程序,其原型如下:
```c
#include <stdlib.h>
int system(const char *command);
```
其中,`command`参数为要执行的命令字符串。当调用`system()`函数时,它会创建一个子进程,执行`command`字符串中指定的命令,等待命令执行完成后返回。
在您提供的示例代码中,`system("/bin/sh")`的作用是启动一个新的`/bin/sh`进程,也就是启动一个新的shell,在该shell下可以执行各种命令。这段代码通常被用于需要在程序中启动一个新的shell进程的场合,例如需要用户输入一些命令来进行操作的情况。但需要注意的是,这也可能带来一些安全风险,因为用户可以在这个shell下执行一些不安全的命令或者操作。
相关问题
/vendor/bin/sh与/system/bin/sh两个sh的去别
`/vendor/bin/sh` 和 `/system/bin/sh` 都是 Android 系统中的 Shell 程序,但它们的作用有所不同。
`/system/bin/sh` 通常是 Android 系统默认的 shell,也就是用户在终端中使用的默认 shell。它是一个基于 `ash` 的轻量级 shell,提供了一些常见的 shell 命令和语法,用户可以在其中执行一些简单的命令和脚本。
而 `/vendor/bin/sh` 则是供设备制造商和开发者使用的 shell。它通常包含更多的命令和功能,以便更好地管理设备和调试系统。例如,一些生产厂商可能会在其中添加自己的命令或脚本,以便更好地管理其设备。在一些情况下,开发者可能需要使用 `/vendor/bin/sh` 来执行一些高级的操作,例如修改系统文件或进行底层调试。
总的来说,`/system/bin/sh` 是用户的主要 Shell,而 `/vendor/bin/sh` 则是专业人员用来进行深度调试和管理的 Shell。
/system/bin/sh: /system/bin/remount: inaccessible or not found
这个错误通常是因为/system分区以只读方式挂载,无法进行写操作。您可以尝试使用以下命令来重新挂载/system分区为可读写模式:
```shell
adb root
adb remount
```
如果您仍然遇到相同的错误,请尝试使用以下命令:
```shell
adb shell mount -o rw,remount /system
```
如果您仍然无法解决问题,请检查您的设备是否已经root,或者尝试使用其他方法来解决该问题。
阅读全文