#define ETH “eth0”
/sys/class/net/“ETH”/address
等同于
/sys/class/net/eth0/address
08:19:07:12:17:08
系统MAC设置
ifconfig eth0 down
ifconfig eth0 hw ether 08:19:07:12:17:08
ifconfig eth0 up
获取电脑MAC
sprintf(file_name, "/sys/class/net/"ETH"/address");
fl_com = fopen(file_name, "r");
if(NULL == fl_com){
log_printf(LOG_DEBUG|LOG_FILE, "open file failed------%s---------\n", file_name);
}else{
file_fseek(fl_com, 1);
memset(data, 0x00, sizeof(data));
fread(data, sizeof(data), 1, fl_com);
for(i = j = 0; data[i] != '\0'; i++){
if((data[i] != ':') && (data[i] != '\n')){
clientID[j++] = data[i];
}
}
clientID[j] = '\0';
fclose(fl_com);
}
关于大小端系统判别
union_t tmp_union;
tmp_union.value = 1;
for(i = 0; i < 4; i++)
printf("%02x", tmp_union.bytes[i]);
if(tmp_union.bytes[0]){
log_printf(LOG_DEBUG|LOG_FILE, "\n\n当前系统为 小端模式\n\n");
}else if(tmp_union.bytes[3]){
log_printf(LOG_DEBUG|LOG_FILE, "\n\n当前系统为 大端模式\n\n");
}
/opt # cat startup.sh
#!/bin/sh
pathbin=/opt/
echo 0 > /tmp/UpgradeFlag
#sudo echo $(date) >> /opt/log.txt
sleep 10
#sudo echo $(date) >> /opt/log.txt
/opt/memory_limit.sh 97%&
while :
do
for i in webs file_num_limit Client;
#i为webs file_num_limit Client时,依次执行3次
do
pid=`pidof $i`
#获取webs file_num_limit Client进程名对应的进程号
#-z 判断 变量的值,是否为空,如果为空,证明可执行文件没有执行
if [ -z "${pid}" ]; then
if [ "$i" = "file_num_limit" ]; then
${pathbin}$i /opt/Log_msg&
#相当于执行/opt/file_num_limit /opt/Log_msg&
else
${pathbin}$i &
#相当于执行/opt/webs&或者/opt/Client&
fi
fi
done
if [ '1' -eq `cat /tmp/UpgradeFlag` ];then
echo 0 > /tmp/UpgradeFlag
sleep 3
echo "upgrade:tar xzvf /opt/Upgrade.bin -C /"
killall webs Client file_num_limit
tar xzvf /opt/Upgrade.bin -C /
sleep 1
reboot
fi
sleep 3
done
exit 0