65,210
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char* argv[])
{
char temp[] = "123";
int mac[9] = {0};
char filename[15] = "memac.bin";
int macc = 0;
FILE *fp;
int i;
strcpy(filename,argv[1]);
for(i=0;i<6;i++)
{
mac[i+2] = strtol(argv[i+2],&temp,16); //这里的mac[i+2]的值为何总是0 ???
}
mac[0] = 0x00;
mac[1] = 0x06;
if((fp = fopen(filename,"wb+")) == NULL)
{
printf("Create file error:%s\n",filename);
return 1;
}
fwrite(mac,sizeof(int),1,fp);
fwrite(macc,sizeof(int),56,fp);
fclose(fp);
return 0;
}
int main(int argc,char* argv[])
{
char *temp = "123";//strtol的原型是long int strtol(const char *nptr,char **endptr,int base); temp需要是char*型
char mac[9] = {0};//要按字节输出,这里就不能是int,一个int是4个字节!
char filename[15] = "memac.bin";
FILE *fp;
int i;
strcpy(filename,argv[1]);
for(i=0;i<6;i++)
{
mac[i+2] = (char)strtol(argv[i+2],&temp,16);
}
mac[0] = 0x00;
mac[1] = 0x06;
if((fp = fopen(filename,"wb+")) == NULL)
{
printf("Create file error:%s\n",filename);
return 1;
}
fwrite(mac,sizeof(char),8,fp);//输出mac的前8个单元
for(i = 0; i < 56; i++)//输出56个0,可不能用fwrite(macc,sizeof(int),56,fp);请仔细看fwrite的使用说明
{
putc(0, fp);
}
fclose(fp);
return 0;
}