在android中通过system调用sh,里面的命令总是失败.

winner8080 2015-07-13 07:06:02
我写了一个shell文件,
里面包含busybox ifconfig eth0 1.1.1.2 netmask 255.0.0.0 up
和busybox ifconfig eth0
这两条主要命令.

然后在C代码中通过system("demo.sh")去执行这个sh文件.
发现busybox ifconfig eth0 1.1.1.2 netmask 255.0.0.0 up没有执行成功
但是busybox ifconfig eth0执行成功了.


然后手动在命令行下. demo.sh这个文件,就发现这两个ifconfig命令都可以成功.

有人知道为什么吗.我是linux新手.多谢大家.

怎么样才能解决通过system命令也能执行成功的问题呢.
...全文
411 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Arnold9009 2015-07-16
  • 打赏
  • 举报
回复
用root帐号运行程序呢
winner8080 2015-07-16
  • 打赏
  • 举报
回复
引用 7 楼 wuhanqing 的回复:
ifconfig 做配置时要root 权限。 你执行shell文件是用root 吗?
对的.我在shell中是root权限. 我现在是在C代码中执行了system("demo.sh"),此时应该怎么用root权限执行shell里面的ifconfig呢 新手,求指导啊.多谢了.
leochen_career 2015-07-16
  • 打赏
  • 举报
回复
demo.sh文件的所有者是root用户吗?如果是的话,用chmod 4777 将demo.sh文件的设置-用户-ID位置1, 这样当程序执行demo.sh文件时,就有了root权限。你试试可以吗?
hanqingwu 2015-07-15
  • 打赏
  • 举报
回复
ifconfig 做配置时要root 权限。 你执行shell文件是用root 吗?
winner8080 2015-07-14
  • 打赏
  • 举报
回复
引用 3 楼 wuhanqing 的回复:
是不是 demo.sh 里有其他的命令,先用排除法看下。
实验了,还是不行,这个sh文件中让我删的就剩下busybox ifconfig eth0和busybox ifconfig eth0 1.1.1.1这两句话了, 还是不行. 感觉想没有权限执行这句话一样. 难道这个ping命令需要特殊权限吗
hanqingwu 2015-07-14
  • 打赏
  • 举报
回复
是不是 demo.sh 里有其他的命令,先用排除法看下。
winner8080 2015-07-14
  • 打赏
  • 举报
回复
引用 5 楼 oathupdate 的回复:
前面加sudo 试试?
加了,也是这样子啊. 所以太奇怪了. 有没有可能是权限的问题呢. 我在命令行下是root
oathupdate 2015-07-14
  • 打赏
  • 举报
回复
前面加sudo 试试?
winner8080 2015-07-13
  • 打赏
  • 举报
回复
自己顶一下,大家帮忙看看啊。新书不太懂
Ricky_meng 2015-07-13
  • 打赏
  • 举报
回复
首先system里面加上source试试 其次看看是不是权限问题

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧