搬砖:通过c去调用shell脚本

107 篇文章 1 订阅

抱歉,代码忘了从哪抄来的了

代码片段,来自自己的测试代码,,,

下面的很多头文件在这里是没用的,懒得删了,有用自己参考,

#include <unistd.h>  
#include <stdbool.h>
#include <android/log.h>

#include <stdlib.h>
#include <string.h>
#include <pthread.h>

#include<string.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<sys/socket.h>
#include <stdio.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>

#include   <net/if.h>





// 执行系统命令,返回命令执行结果字符串
char* get_output_of_cmd(const char* cmd) 
{
	int32_t count=2048;
	char s[2048];
	char* ret;
	FILE* stream = popen(cmd, "r");
	if (stream != NULL) {
		// 每次从stream中读取指定大小的内容
		while (fgets(s, count, stream))
			ret = s;
		pclose(stream);
		printf("ret:\n %s",ret);
	}
	return ret;
}


// 执行系统命令,根据命令退出代码返回布尔值
bool get_exit_status_of_cmd(const char* cmd) {
	return (system(cmd) == 0);
}

void exccmd()
{
	/*
	 *char* re;
	 *re=get_output_of_cmd("ls /root");
	 *printf("ret:\n %s",re);
	 *re=get_output_of_cmd("/data/test.sh");
	 *printf("ret:\n %s",re);
	 */
	get_exit_status_of_cmd("ls /root");
	get_exit_status_of_cmd("/data/test.sh");

}


int main(int argc, char** argv)
{

	printf("\n-----------------------\n");
	/*init();*/
	exccmd();
	/*sys_call();*/
	//ip_test();
	//getip_not_r();

	exit(0);
}

 

 

 

可用;

#test.sh  
                                                
####this is a test file! called by so#######
#dontpanic...
#shit!!! lets set the ip!
cat test.sh
#netcfg

注意,给chmod a+x test.sh

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值