Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102426
  • 博文数量: 23
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-22 10:44
文章分类

全部博文(23)

文章存档

2018年(3)

2017年(1)

2015年(1)

2014年(18)

我的朋友

分类: 嵌入式

2014-07-19 14:52:30

在调试嵌入式设备时,发现执行一个自己写的脚本还挺费劲,找了很多资料才完成工作。
下面是一个例子和大家分享一下。功能是通过telnet设备上,设置设备的MAC地址。此mac地址通过传入地址指针中的内容。

点击(此处)折叠或打开

  1. void set_mac_with_sh(unsigned char *mac)
  2. {
  3.     char c_buf_mac[20] = {0};
  4.     char argv_sh[512] = {0};
  5.     char *path = "/bin/sh";//环境变量路径
  6.     char *shell = "sh";//执行脚本的程序名称
  7.     char *ch = "-c";
  8.     char *sh = "/user/app/setMac.sh";//脚本所在全路径和脚本名称
  9.     char *argv[4] = {NULL,NULL,NULL};
  10.     
  11.     memset(c_buf_mac, '\0', sizeof(c_buf_mac));

  12.     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]);

  13.     argv[0] = shell;
  14.     argv[1] = ch;
  15.     sprintf(argv_sh, "%s %s", sh, c_buf_mac);
  16.     argv[2] = argv_sh ;

  17.     int ret = 0;
  18.     ret = execv(path, argv);
  19.     if(ret == -1)//取返回值,调试使用
  20.         printf("execv errno:%d\n",errno);
  21.     _exit(1);

  22. }

阅读(1636) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~