抱歉,代码忘了从哪抄来的了
代码片段,来自自己的测试代码,,,
下面的很多头文件在这里是没用的,懒得删了,有用自己参考,
#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