在调试嵌入式设备时,发现执行一个自己写的脚本还挺费劲,找了很多资料才完成工作。
下面是一个例子和大家分享一下。功能是通过telnet设备上,设置设备的MAC地址。此mac地址通过传入地址指针中的内容。
-
void set_mac_with_sh(unsigned char *mac)
-
{
-
char c_buf_mac[20] = {0};
-
char argv_sh[512] = {0};
-
char *path = "/bin/sh";//环境变量路径
-
char *shell = "sh";//执行脚本的程序名称
-
char *ch = "-c";
-
char *sh = "/user/app/setMac.sh";//脚本所在全路径和脚本名称
-
char *argv[4] = {NULL,NULL,NULL};
-
-
memset(c_buf_mac, '\0', sizeof(c_buf_mac));
-
-
sprintf(c_buf_mac, "%02x:%02x:%02x:%02x:%02x:%02x", c_buf_mac[0], c_buf_mac[1], c_buf_mac[2], c_buf_mac[3], c_buf_mac[4], c_buf_mac[5]);
-
-
argv[0] = shell;
-
argv[1] = ch;
-
sprintf(argv_sh, "%s %s", sh, c_buf_mac);
-
argv[2] = argv_sh ;
-
-
int ret = 0;
-
ret = execv(path, argv);
-
if(ret == -1)//取返回值,调试使用
-
printf("execv errno:%d\n",errno);
-
_exit(1);
-
-
}
阅读(1636) | 评论(0) | 转发(0) |